9≡⊂9 is pretty much the whole basis of "floating array theory", upon which APL2 was based. Other array languages like Sharp APL and J went in a different direction.
Once you accept the floating array model, this sentence seems completely redundant, and I don't know why they put it in the spec: "If B1 is a number or a character, set B to an array, whose ravel-list contains the single item B1 , and whose shape-list is empty." Jay. On Thu, 20 Feb 2020 at 15:12, Elias Mårtenson <[email protected]> wrote: > > > ---------- Forwarded message --------- > From: Elias Mårtenson <[email protected]> > Date: Thu, 20 Feb 2020, 22:39 > Subject: Definition of "first-thingy" > To: <[email protected]> > > > One benefit of experimenting with low-level PAL behaviours is that I've spent > much more time lately reading the ISO spec. > > I was reading the specification for ↑ (first), which says that it returns > "first-thingy" of the argument. > > Now, the definitions section defines "first-thingy" as such: > > First-thingy in A : An opration that for A , an array, returns an array B , > defined as follows: > If A is empty, set B1 to the typical-element of A . > Otherwise, set B1 to the first-item of the ravel-list of A . > If B1 is a number or a character, set B to an array, whose ravel-list > contains the single > item B1 , and whose shape-list is empty. > Otherwise, set B to B1 . > > My impression from reading this is that this is not consistent with GNU APL's > behaviour in the following case: ↑9 > > GNU APL returns the number 9 in this case, while it would seem it's supposed > to return a 9 wrapped in a zero-dimensional array: ⊂9 > > Now, GNU APL evaluates ⊂9 to the number 9 as well, which I also feel isn't > consistent. > > Am I misreading the spec, or is there an inconsistency here? > > Regards, > Elias
