You might want to look up Ken Iverson’s 1980s era paper Dictionary APL. I believe Roger maintains an online version. This document clearly explains a lot of what you see in J.
Sent from my iPhone > On Dec 19, 2017, at 7:22 AM, Raul Miller <[email protected]> wrote: > > Well.. the issue I remember was that axis notation specifically and > bracket notation in general was inconsistent with the rest of the > syntax for APL. > > There were at least two ways out of this - one would be to generalize > bracket notation (I think that K might have followed that path). The > other would be to eliminate it (I think J followed that path). Both > approaches have their advantages and disadvantages. (Generally > speaking, in engineering, you're always dealing with tradeoffs.) > > That said, I'd put this more in the category of "common knowledge and > subject of discussion" than anything else. Still... if you are looking > for evidence of that ... there might be records of some of that in > SIGAPL conference notes? > > Good luck, > > -- > Raul > > > On Tue, Dec 19, 2017 at 9:14 AM, Erling Hellenäs > <[email protected]> wrote: >> Hi all! >> >> IBM, APL2 Programming: Language Reference >> http://publibfp.boulder.ibm.com/epubs/pdf/h2110611.pdf >> >> You were right in that a scalar was considered an array. >> >> There is a difference in that we used the AXIS notation instead of what is >> Rank? See page 55. >> >> This means the functions did not normally act on k-cells, but along default >> or specified axis? >> >> This is different from in J where functions act on k-cells? >> >> So: >> >> Is there any documentation of the design decision to select the n-cell array >> model? >> >> Are there any threads in the forum where this array model is discussed? >> >> Maybe someone also wants to share their knowledge from internal discussions >> about this design decision. >> >> Cheers, >> >> Erling Hellenäs >> >> >>> Den 2017-12-19 kl. 14:28, skrev Raul Miller: >>> >>> I'm not completely sure what you are getting at here, actually. >>> >>> When I was learning APL, I was taught that a scalar was a rank zero >>> array. And it seems to me that J uses the same design. >>> >>> If you look at J's 3!:1 and 3!:2 foreigns (or you can use 3!:3 instead >>> of 3!:1 if you prefer), you'll see that J uses the same data structure >>> for arrays regardless of rank (There's size differences, of course, in >>> the dimension and the data). If you are working in a strongly typed >>> environment, you'll probably want to be using a dependent type system. >>> >>> That said, APL2 did pull some shenanigans with rank zero arrays and >>> infinity. J follows the Sharp APL design instead of the APL2 design, >>> if that is what you were asking about. >>> >>> I hope this helps, >>> >> >> ---------------------------------------------------------------------- >> For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
