I can't pretend to either be an educator, but for my own use, I've found
that J makes for a great computational notation and a great notation for
writing about mathematics on computers, it doesn't work well for me as a
pen-and-paper notation for actually doing math.

If I'm writing something up, I'm naturally contrained to a single linear
line of text, and I don't have to worry about how long it takes me to
handwrite symbols. If I'm doing work on paper, on the other hand, I can
work in two dimensions with fractions, and it matters that I find "*" to be
a relatively slow symbol to draw.

Similarly, "traditional" notation naturally maps to simple algebraic
manipulation in a way that J doesn't. If I have

    e = a + 2*b + c + d   (traditional)

I can write

    e - 2*b = a + c + d

while the same tokens in J,

    e = a+2*b+c+d

can only naturally be "split" rather than reordered.

    (e-2*b+c+d) = a

Even, then, the "split" only works for an initial element, since it's not
true that

    e = a-b-c-d

is the same as

    (e+c-d) = a-b

I'm not that satisfied with these examples. The point I'm trying to express
is that since J expressions are strictly cumulative, most manipulations
require an awareness of the entire expression, unlike algebraic notation,
whch builds on the associativity and commutativity of addition.

As an example, I found it much easier to work out a basic derivation of the
quadratic formula in traditional notation rather than in J notation. In J,
it would be hopeless if I didn't use the polynomial verb.

    0= (c,b,a) p. x
    0= ((c%a),(b%a),1) p. x
    (*:-:b%a) = (((c%a)+*:-:b%a),(b%a),1) p. x
    ((-c%a)+*:-:b%a) = *:((-:b%a),1) p. x
    (*:-:%a)*((*:b)-4*a*c) = *:((-:b%a),1) p. x
    ((],-) (%:(*:b)-4*a*c))%2*a) = ((-:b%a),1) p. x
    x = (2*a)%~b (+,-) %:(*:b)-4*a*c

vs.

    0 = c + bx + ax^2
    0 = c/a + (b/a) x + x^2
    b^2/4a^2 = c/a + b^2/4a^2 + (b/a) x + x^2
    b^2/4a^2 - c/a = (b/2a + x)^2
    (b^2 - 4ac)/4a^2 = (b/2a + x)^2
    +- sqrt(b^2 - 4ac)/2a = b/2a + x
    x = (-b +- sqrt(b^2 - 4ac))/2a

Writing out the J on paper took forever, with lots of fiddly little colons
and adding extra parentheses to make the expressions work. I often had to
"go back" and insert parenthesis around expressions, which isn't a problem
on a computers, but is a nuisance on paper.

Lest you think this is a trivial example, it extends (I think) to bigger
problems. If I try to imagine working my way through a typical (say)
undergraduate physics E&M problem set using J notation, I think I'd grind
to a halt.

J is optimized for feeding into a computer, not for writing on a whiteboard
or on paper. I know APL was used as a non-computer notation, but I think
the "funny symbols" actually help there, and even then it seems like such a
linear way to work.

Now, I have no easy way to extrapolate to greater educational policy, but I
can say that I'm glad to have both notations at my disposal now:
traditional for working things out symbolically and J for implementing and
experimenting numerically.

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

Reply via email to