Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!usc!wuarchive!udel!haven.umd.edu!socrates.umd.edu!socrates!rockwell From: rockwell@socrates.umd.edu (Raul Rockwell) Newsgroups: comp.lang.apl Subject: Re: what is j? Message-ID: Date: 14 May 91 12:27:50 GMT References: <199113.993.337@canrem.uucp> Sender: rockwell@socrates.umd.edu (Raul Rockwell) Organization: Traveller Lines: 69 In-Reply-To: greg.trice@canrem.uucp's message of 13 May 91 17: 32:05 GMT Greg Trice: I've only recently started to read this group, and I'm mystified by all the references to J. I assume it is a language, if so, what relationship does it have to APL? I've used APL for many years and I've never seen any other language that remotely resembled it. Is J such an animal? Perhaps for the benefit of those new to J somebody could post a listing showing where APL and J differ. I'm assuming J has some relationship to APL because why would it be discussed here otherwise? :-) Well, it might help if I pointed out that Ken Iverson (and others) designed J. If you want more information, note that J is distributed by Iverson Software, Inc. 33 Major Street Toronto, Ontario M5S 2K9 Or, on the net, you can check out watserv1.waterloo.edu:languages/apl/j The most noticeable differences between J and APL are: J uses ascii, rather than the APL character set J assignment is more powerful than APL J has a number of operators and functions which (as a general rule) are not present in APL. I believe one way of describing the differences is to say that J is a dialect of APL. (If you're familiar with I.P. Sharp APL, J is closer to that than, say APL2). However, +/1 2 3 6 in both languages. Perhaps a better example of the differences is iota and reshape. In APL, iota 5 gives either 1 2 3 4 5 or 0 1 2 3 4 In J, iota is replaces with 'i.', and i. 5 yields 0 1 2 3 4 In APL, 2 rho 3 2 rho iota 6 (I'm going to assume quadIO is 0) yields: 0 1 In J, reshape is indicated by $, and 2 $ 3 2 $ i. 6 yields 0 1 2 3 but 2 $, 3 2 $, i.6 yields 0 1 ($ reshapes along the first dimension, and you must ravel higher ranked arrays if you want exactly the same behavior as APL). There are lots more differences (for instance, J uses assignment to generate functions, rather than the del editor), but the best way to find out what they are is plunk down 24 dollars and get a copy of the current version of the language (and the documentation), then work your way through the tutorials. (Or ftp to watserv1, but you don't get much in the way of docs from there :-( Raul Rockwell