[Jprogramming] @ and @: (atop and at)

Dan Bron j at bron.us
Mon Jan 25 16:01:14 UTC 2016


Linda wrote:
> But, it doesn't mean  f at g and [:f at g  can't be equivalent.

I think you meant f at g and [: f g can sometimes be equivalent (not [: f at g, which always produces a domain error, because you’re trying to execute [:, which cannot be executed).

Two points about that:

  1. f at 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 at 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


More information about the Programming mailing list