It has been pointed out (f g h) y is not strictly equivalent to (f y) g (h y)
because it is not guaranteed that the right and left tines of a fork will
be applied in sequence. See also the recent thread 'can i trust `:0 to
always execute left to right?'
Does the same caveat apply to & and &: (and &. and &.:)?
The dictionary incorrectly claims that x u&v y ←→ (v x) u (v y). NuVoc
mentions this, but only points out the rank discrepancy (and NuVoc takes
pedagogic liberties anyway). Other NuVoc pages (including those for &.
and &.:) are silent regarding evaluation order. The dictionary says of &.
the same incorrect thing it says of &.
It would be good to have documentation somewhere making explicit which
guarantees are provided regarding evaluation order (and which are not).
'(f g h) y ←→ (f y) g (h y)' was quietly scrubbed from early editions of
the dictionary (so I hear), but the motivation for preferring the
diagrammatic definitions was not included. And `:'s NuVoc page still does
not mention that evaluation order for `:0 is not guaranteed, even though
this _has_ caused confusion (e.g. forum thread referenced earlier).
-E
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm