On 11 December 2012 06:23, Johann Hibschman <[email protected]> wrote:
> it seems like such a linear way to work.

i think that sums it up. If an effort were made to make j a truly 2D
language i think it could meet and vastly exceed all the values we all
attribute to `traditional` notation. As it is we have a full dimension
tied behind our back.

With tablets and such, with fat fingers, the need, and the
possibilities, are growing evermore acute.

greg
~krsnadas.org

--

from:    Johann Hibschman <[email protected]>
to:      [email protected]
date:    11 December 2012 06:23
subject:         Re: [Jchat] Was: [Jprogramming] J v Python

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