OK, this was more complex than I understood. I'm still trying to grasp this
stuff. :-)

In the document you linked to (thanks for that by the way!) they state the
following:

*Moreover, on certain implementations addition of empty arrays is not
always commutative (e.g., L+R does not match R+L).*


The implication here is that + should always be commutative. I noticed that
it isn't on GNU APL. Is this a bug? Notice the difference between ⍬+f and
f+⍬ below:

      f← ('foo' 4)[⍬]
      f
      ≡f
2
      f+⍬
      8⎕CR f+⍬
┌⊖┐
│0│
└─┘
      8⎕CR ⍬+f
┌⊖────┐
│0 0 0│
└─────┘


Regards,
Elias


On 30 January 2014 12:53, Nick Lobachevsky <[email protected]> wrote:

> The difference is that a is an empty nested array and that b is an
> empty simple array.  The depths would be different.  I tried this
> example on Dyalog and ≡a is 2, one level of nesting, while ≡b is 1, a
> simple vector.
>
> Also see http://www.sudleyplace.com/APL/Prototype%20Functions.pdf
>
> On 1/29/14, Elias Mårtenson <[email protected]> wrote:
> > If I create an empty character array by selecting ⍬ from an array that
> > contains a string and a number, the result becomes what seems to be an
> > empty array with non-zero shape.
> >
> > The issue can best be explain by the following interaction. Note the
> > strange output from 8⎕CR:
> >
> >       a←('foo' 9)[⍬]
> >       b←''
> >       a≡b
> > 0
> >       a
> >       b
> >       8⎕CR a
> > ┌⊖──┐
> > │   │
> > └───┘
> >       8⎕CR b
> > ┌⊖┐
> > │ │
> > └─┘
> >       ⍴a
> > 0
> >       ⍴b
> > 0
> >
> >
> > Regards,
> > Elias
> >
>

Reply via email to