On Sun, Sep 20, 2015 at 9:57 PM,  <alexwei...@alexweiner.com> wrote:
> Should the execute primitive include the structure data? I thought that the
> phrase in the subject line would return zero. I thought the first element
> would return a scalar 5, and the second would return a single element five.
> Both evaluate to a scalar five.

In some places single-element vectors and scalars are treated equally.
That's why ⍎'5' is even allowed in the first place.  ⍎ throws domain
error if its argument has rank higher than one, but otherwise it doesn't
care and executes ravel list of its argument as a single line regardless
if it's a vector or scalar.

It's always a line of APL program, not data with any kind of structure.
And by the rules of APL language, a program consisting of single digit 5
has scalar result.  It is still so if you were to put, for example, a
space before or after it (necessarily making the code itself a vector;
but without changing the result it evaluates to).

Distinction between kind of quotes used would matter if they were the
part of the line executed by ⍎:

      ≡/⍎¨'"5"' "'5'"
0

Here "5" and '5' are executed giving a (character) vector and a scalar,
respectively, in the result.

-k

Reply via email to