> [mailto:[EMAIL PROTECTED] On Behalf Of Mark D. Niemiec
...
> 
> >     With the hindsight from 17 years of usage, I would
> >     define 2-verb trains differently, viz.
> >
> >         (f g) y   <->   f    g y
> >       x (f g) y   <->   f (x g y)
> >
> >     And the ranks would be _ _ _
> 
> This just removes the need for [: (which I could very well 
> live with, see above). However, I think that the semantics of 
> the APL bond operator would be better:
>           (f g) y   <->     f g y
>         x (f g) y   <->   x f g y
>      

That is right!  Instead of the current behavior, (using symbolic verbs to
illustrate), 

   (u v)Y
(Y u (v Y))
   X(u v)Y
(X u (v Y))
   
   (u v vv)Y
((u Y) v (vv Y))
   X(u v vv)Y
((X u Y) v (X vv Y))
   
One could have had, , as you suggested,

   (u v)Y
(u (v Y))
   X(u v)Y           NB. No change 
(X u (v Y))

and I would even consider,

   (u v vv)Y
(u (v (vv Y)))
   X(u v vv)Y        NB. (No structural change, but without any assumed
order of execution regarding u vs. vv!)
((X u Y) v (X vv Y)) 

Would this change not close the gap between tacit and explicit notation
(without any loss of generality)?

I still occasionally fall into the trap of presuming,

   (u v)Y
(u (v Y))

Fortunately,

   ([EMAIL PROTECTED] v)Y
(u (v Y))

So, one can write,

   minus=. [EMAIL PROTECTED]
   (minus %)2
_0.5

without getting,

   (- %)2
1.5






----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to