3 ms·
Far from an expert on APL, I googled for APL Grounded array and found this: http://webcache.googleusercontent.com/search?q=cache:h7FiYcAbRgwJ:microapl.com/apl/A
by Pamar 10y ago
Far from an expert on APL, I googled for APL Grounded array and found this: http://webcache.googleusercontent.com/search?q=cache:h7FiYcAbRgwJ:microapl.com/apl/APL1_2.PDF+&cd=3&hl=en&ct=clnk&gl=us http://webcache.googleusercontent.com/search?q=cache:h7FiYcA... - hope it helps.
(From what I could understand with floating you are actually adding a scalar element to the array, with grounded you are creating a 1-element array containing the scalar, and adding this to the original array, which is an array of arrays - but I might have completely misunderstood)
- dang 10y agoThat link does clear things up—thanks! In the early 1980’s, a number of APL vendors almost simultaneously introduced a new concept into APL - the nested array. Each element of a nested array can itself be any other (nested) array. A new monadic primitive function, called enclose, was introduced that took any array as its argument and returned a scalar enclosed array. This scalar (rank zero) array could then be inserted in place of any scalar element of any APL array. Unfortunately there were two inequivalent approaches; grounded arrays as proposed by Ken Iverson [...] and floating arrays as proposed by Jim Brown [...] In the grounded system, enclosing a simple scalar produces an enclosed scalar, whereas in the floating system, enclosing a simple scalar leaves it unchanged. So enclose(x) is always a scalar, but the two schemes disagree about whether enclose(s) == s for a scalar s.
- leephillips 10y agoThis is amusing to read, because I learned APL in 1976 when I entered college. It was my first programming language and my only one for a long time. I remember that the most frustrating thing about it was the lack of nested arrays, especially when dealing with arrays of strings. You had to put them into a rectangular array, so they all had to be the same length, which meant you had to pad them. I was horrified when I learned FORTRAN: I have to write a do-loop to add two arrays together? Why? (No array fortran back then.)