Strange, because when i tried it in Dyalog 18, the result is only the number 3, 
not the matrix you got.

      display  3 (1 2) (2 2 ⍴ 0 1 2 3)
┌→──────────────┐
│   ┌→──┐ ┌→──┐ │
│ 3 │1 2│ ↓0 1│ │
│   └~──┘ │2 3│ │
│         └~──┘ │
└∊──────────────┘
      display ⊃ 3 (1 2) (2 2 ⍴ 0 1 2 3)
 
3
 

> On Sep 22, 2021, at 12:49, Elias Mårtenson <loke...@gmail.com> wrote:
> 
> 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 <mailto: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 
>> <mailto: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 <mailto:lchret...@mac.com>
> 
> 
> 
> 


---
Louis Chrétien
lchret...@mac.com




Reply via email to