Path: utzoo!censor!geac!torsqnt!tmsoft!itcyyz!yrloc!rbe From: rbe@yrloc.ipsa.reuter.COM (Robert Bernecky) Newsgroups: comp.lang.apl Subject: Re: Some General Questions about J Message-ID: <1991Mar2.050935.4427@yrloc.ipsa.reuter.COM> Date: 2 Mar 91 05:09:35 GMT References: <1991Feb23.234505.5960@csi.uottawa.ca> <1991Feb26.162714.28837@csrd.uiuc.edu> Reply-To: rbe@yrloc.ipsa.reuter.COM (Robert Bernecky) Organization: Snake Island Research Inc., Toronto Lines: 25 <... first axis operations were done... to make use of the rank operator easier...> There's more to it than that. Consider that traditional APL had 3 (count 'em, three!) flavors of many operations. For reduction, there was reduction along the first axis, written as slash overstruck with minus. There was reduction along the last axis, written as slash. And, there was reduction along axis k written as slash leftbracket k rightbracket. J unifies all those into a single reduction, written with slash, in which you achieve the other axes via the rank adverb. Because the rank adverb has consistent semantics, you only have to learn how it works once. Because reduction has consistent semantics, ditto. But you end up with a whole family of reductions, and REDUCE the number of symbols required to express the notation. So, it' it's not just to make rank easier. Function rank is the key to simplifying APL, and the first axis is its prophet. Oopsie. Apologies to Asimiv. Asimov. ... the first axis enables those simplifications. Bob Bernecky