This topic came up on Dyalog Forum.

I wrote:

IBM APL2, NARS2000-32 and APL+Win treat catenation of empty

arrays differently from Dyalog.

Set a={enclose}[2]0 2{rho}0

Set w=0{rho}{enclose}{iota}0

Dylaog:

a,w

a

This makes sense: catenating an empty vector to a results in no change to a.

IBM APL2, NARS2000, APL+Win:

a,w

w

This does not make as much sense. Why the difference?

John Scholes replied

--------------------------------------------------------------------------------

Re: Catenating empty arrays

Dyalog used to have an inconsistent approach to the catenation of empty arrays. This was rationalised in Version 12 (issue number 3225). We judged returning the left null to be preferable and The Extended APL Standard for Join Along an Axis appears to agree: If B2 is empty, return (...)⍴A2, where A2 is ⍺ and B2 is ⍵.

So now:

⍬≡''

0

⍬≡⍬,''

1

''≡'',⍬

1

-----------------------------------------------------------------

Andrew Seary again, and sorry if not all the APL characters are visible.

The ⍬ is {zilde}.

Now:

Here's what IBM APL2, NARS2000 and APL+Win returns:

⍬≡''

0

⍬≡⍬,''

0

⍬≡'',⍬

1

That is, the RIGHT null is returned.

Would it be advisable for NARS2000 to conform with the Dyalog approach?