Lambda the Ultimate

inactiveTopic More on J
started 8/26/2000; 1:24:09 PM - last post 8/29/2000; 12:26:26 PM
Ehud Lamm - More on J  blueArrow
8/26/2000; 1:24:09 PM (reads: 424, responses: 4)
More on J
I saw J discussed while I was away. J is a very nice language. So nice, in fact, that I started writing a FAQ for it once. I am pointing to it from here. It tries to help you get into the J/APL mode of thinking. I think it fails doing that, but at least it tries...

Some of you might also enjoy this essay (from my E-List) which has some J examples.


comp.lang.apl is very receptive to language discussions, and discussions of languages related to APL but distinct from it. So is comp.lang.scheme. Those groups are among those with readers that might enjoy Lambda...
Posted to "" by Ehud Lamm on 8/26/00; 1:38:36 PM

Chris Rathman - Re: More on J  blueArrow
8/28/2000; 6:32:21 PM (reads: 444, responses: 3)
The main reason that Iverson split off J from the APL tree was the limitations of the ASCII character set. I've been kind of wondering whether the efforts to standardize around unicode will obviate the need for J as a seperate language? I know of at least one APL person that thinks that the use of ASCII makes the language much less elegant.

Ehud Lamm - Re: More on J  blueArrow
8/28/2000; 11:22:22 PM (reads: 484, responses: 2)
Not so fast...

First off, you have the simple issue of keyboards. UNICODE will not give way to keyboards with so many glyphs. Maybe handwriting recognition is the way to help solve this APL problem.

But more interestingly, J has some features that transcend 'classic' APL. Some of these are discussed in the FAQ I pointed to. One major idea is the use of phrasal forms like hook and fork. Tacit definitions are also there, and make the language much more ...er... functional.

Natrually we can have, some day, a 'J with glyphs' language. Since it won't be J, but a language like it, it should be called AJL: 'A J Language'...

Chris Rathman - Re: More on J  blueArrow
8/29/2000; 7:05:55 AM (reads: 530, responses: 1)
First off, you have the simple issue of keyboards.

Admittedly, writing code is more difficult if you use characters that are not on a standard AT-101 keyboard. But the concern is more on the reading side. A good edit environment could help you get to the non-keyboard characters - drop downs or special character windows. Short of that, the editor window could always allow you to enter the ascii codes and then optionally display them as glyphs.

But more interestingly, J has some features that transcend 'classic' APL. Some of these are discussed in the FAQ I pointed to.

Not to mention that J added a Class-Object mechanism with one of the latest versions, which is what got me interested in the language in the first place. :)

One major idea is the use of phrasal forms like hook and fork.

For some reason, this reminds me of Currying within Haskell. Are the ideas related?

Ehud Lamm - Re: More on J  blueArrow
8/29/2000; 12:26:26 PM (reads: 560, responses: 0)
I was a bit tongue-in-cheek about the keyboard issue. Though I wouldn't dismiss it off hand.


As to Currying. I am not really an expert on these issues, but I think that Currying (moving to a lower arity runction, by creating a function with one argument fixed. Like the & in J) is more related to the default semantics of tacit defintions in J. This really isn't tied just to hooks and forks. Of course tacit definitions usually use hooks and forks.

But Curry is related to phrasal froms in a more fundamental way. Hooks and forks stem from ideas in combinatory logic, a field Curry influenced.

In their paper Phrasal Forms Iverson and McDonnell discuss how the hook is actually the S combinator, and how forks are related to the formalizing combinator of Curry.

So I'd say all these ideas are pretty much related.