I take a somewhat more pragmatic approach.
Years ago when teaching APL the first, and largest problem, was to stop
students writing poor C in even worse APL. We learn the notation as it is,
not from some pre-set ordering; and this true in mathematics. Why should
a*b+c mean * first? (and in many cases it doesn't). I've often thought *
before +, which is now taught as 'standard', comes mostly from the first
Fortran which did use that order. Spoken languages do not, in general,
have a nice logical structure in all cases.
Mathematical notation has grown over the years, sometimes in ways I expect
sometimes not. J has changed since the first release was made years ago.
But I want the simplicity of the notation, so I learn it as it is. The only
one I still have trouble with is the left argument in dyadic transpose,
which differs in J and APL. When all else fails I just experiment on a low
rank noun until I get what I want.
I can provide arguments in most cases for what is actually done, but I'm
not sure it matters, nor do I think it makes the learning easier.
Ralph Selfridge
On Wed, 23 May 2007, Roger Hui wrote:
This time I do remember, having re-read it only
earlier today. Quoting from
http://www.jsoftware.com/pipermail/general/2007-April/029638.html
http://www.jsoftware.com/help/jforc/more_verbs.htm
comments on the order of arguments in /: and \: .
In these cases the answer is "obvious". With
the current order of arguments,
/: y \: y
x /: y x \: y
it is always the right argument which is being
graded.
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm