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

Reply via email to