Thanks Dan, Each time I swing around this "tangle of @/@:'s" I seem to get closer to understanding them. But, I still miss some more subtle distinction.
Linda -----Original Message----- From: Programming [mailto:[email protected]] On Behalf Of Dan Bron Sent: Monday, January 25, 2016 11:01 AM To: J Programming Subject: Re: [Jprogramming] @ and @: (atop and at) Linda wrote: > But, it doesn't mean f@g and [:f@g can't be equivalent. I think you meant f@g and [: f g can sometimes be equivalent (not [: f@g, which always produces a domain error, because you’re trying to execute [:, which cannot be executed). Two points about that: 1. f@g and [: f g are equivalent precisely when g has unbound (i.e. _) rank. Since so many primitive, and almost all compound, verbs have unbound rank, f@g is correspondingly frequently equivalent to [: f g . 2. If you’re going to memorize a rule to keep you out of trouble, I would phrase it: [: f g and f@:(g) — with the parentheses! — are equivalent. That way, for example, you won’t get tripped up by the difference between [: *: +/ and *: @: +/ which are _not_ equivalent. But [: *: +/ and *: @: (+/) — with parentheses around g! — are. -Dan ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
