Once I saw that you'd used the dyadic form of (gerund}) precisely in order to
obtain its three-part structure ((x v0 y) (x v1 y)} (x v2 y)) I saw that I
could take advantage of this to factor out shape-of. Thus instead of
guard=: ]`([:<"1 [EMAIL PROTECTED] >:@#: [EMAIL PROTECTED]@])`(0 $~ 2 + [EMAIL
PROTECTED])}~
we can have
guard=: [`([:<"1 ] >:@#: [EMAIL PROTECTED])`(0 $~ 2 + ])} $
for this tacit version of guard. As you noted this is presumably not so
efficient as the other solutions posted.
By the way, what I'd expected to find as I went into this was a way to specify
corner-plus-extent to }, along the lines of (;.&0). I'm still somewhat
surprised that it's not available.
--
Tracy B. Harms
A good programming language is a conceptual universe
for thinking about programming.
Alan Perlis
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm