Well, for each element that has lower rank than the highest-rank element in
the list should be rank-extended by prepending 1.

In other words, in the example I gave, the maximum rank (last element) is
2. The rank-1 element (the second one) should be extended to (1 2) by
prepending 1.

Thus, the result from Dyalog is:

┌┌→──┐
↓↓3 0│
││0 0│
││   │
││1 2│
││0 0│
││   │
││0 1│
││2 3│
└└~──┘

The current implementation already extends scalars, so it seems to
special-case that case anyway.

Regards,
Elias

On Wed, 22 Sept 2021 at 23:55, Louis Chretien via Bugs and suggestions for
GNU APL <bug-apl@gnu.org> wrote:

> And what is the correct answer?
>
> I tried it with APL/X 5.1, and i get the same “RANK ERROR” as in GNU APL.
>
> If i understand disclose correctly, the right argument are nested
> elements, but of a shape that allows for them to be laminated into a matrix
> as a result. Having a scalar, a vector and a matrix is bound to create
> difficulty.
>
> On Sep 22, 2021, at 09:16, Elias Mårtenson <loke...@gmail.com> wrote:
>
> The following expression should work, if I'm reading the ISO spec
> correctly:
>
> ⊃ 3 (1 2) (2 2 ⍴ 0 1 2 3)
>
> It does work on Dyalog, and gives the expected result.
>
> Regards,
> Elias
>
>
>
> ---
> Louis Chrétien
> lchret...@mac.com
>
>
>
>
>

Reply via email to