This was a breaking change in APL2 (previously 1 2 3[2] was valid and
returned 2) but I think it was the right decision for a language with
stranding. It means that A[1] B[2] parses as (A[1])(B[2]) which seems sane.

The alternative (ISO, Dyalog) is that A[1] B[2] parses as (A[1] B)[2],
which is pretty counter-intuitive.

Jay.

On 15 February 2017 at 20:22, Juergen Sauermann <
juergen.sauerm...@t-online.de> wrote:

> Hi Xiao-Yong,
>
> IBM APL2.
>
> *[]* binds stronger than anything else.
>
> Thus *3[1 2]* is evaluated first, giving the *RANK ERROR*.
>
> /// Jürgen
>
>
> On 02/15/2017 09:14 PM, Xiao-Yong Jin wrote:
>
> Feature or bug?
>
>       1 2 3[2 1 3]
> RANK ERROR
>       1 2 3[2 1 3]
>           ^^
>       )sic
>       (1 2 3)[2 1 3]
> 2 1 3
>
>
>
>
>
>

Reply via email to