Wow. I need to read (and understand) the spec, clearly. Thanks for
explaining this to me.

Regards,
Elias


On 1 February 2014 03:52, Kacper Gutowski <[email protected]> wrote:

> On 2014-02-01 01:37:23, Elias Mårtenson wrote:
> > As far as I understand, OP/ is supposed to splice OP in between every
> element
> > in the array and return the result.
> >
> > Based on this, I would expect that ,/1 2 3 4 and 1,2,3,4 to be
> equivalent.
>
> That's how reduction is informally described, but join isn't a simple
> scalar function so precise definition matters in this case.
>
> > Am I misunderstanding or is GNU APL doing something wrong?
>
> Your example gives the same results in other systems as well.
> If I read the ISO standard correctly, there are two slightly different
> conforming definitions for reduce and GNU APL uses what they call
> enclose-reduction-style.  It essentially boils down to this:
>
>   f/1 2 3 4 ←→ ⊂1 f ⊃f/2 3 4
>
> In fact, standard explicitly gives these two examples:
>
>       (3 8⍴0) ≡,⌿2 3 4⍴0 ⍝Insert-Reduction-Style
> 1
>       (3 4⍴⊂0 0) ≡,⌿2 3 4⍴0 ⍝Enclose-Reduction-Style
> 1
>
> Note that enclose is a no-op for simple scalars so +/1 2 3 4
> isn't nested at all (it matches the informal description).
>
>
> -k
>

Reply via email to