[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: SRFI-10 syntax vs. #nA syntax

Per Bothner wrote:
> In APL, a rank-0 array is the same as a scalar.  In Scheme, it would
> be difficult to make them the same.  One reason is mutability: a
> rank-0 array in Scheme and Common Lisp is actually a cell that
> contains a mutable value.

That may be true in Common Lisp (I don't know it well enough to judge),
but it's not currently true in RnRS+SRFI Scheme. As far as I know, only
SRFI 47 mentions rank-0 arrays at all, and it uses 0 rank to describe
all non-array values. That's closer to the APL meaning.

> Even thpugh we talking about literals which are upposed to be
> immutable, that doesn't solve the problem whether the dereferencing is
> automatic or not: a 0-rank mutable array is a cell, which is different
> from the value stored in it.  I.e. getting its value requires some
> kind of array-ref function call.  An immutable value is one where
> setting is prohibited (undefined), but getting uses the same functions
> as for accessing a mutable value.  Hence,  scalar cannot be equivalent
> to a rank-0 array in Scheme, even though it is the same in APL.

Huh? I can't make any sense out of this. Scheme does not /define/ a
rank-0 array as a boxed value; Scheme doesn't define arrays at all. And
the "boxedness" of a rank-0 array cannot be fundamental, since APL
equates rank-0 arrays and scalars.

I don't see how you reach your conclusion (rank-0 arrays aren't scalars
in Scheme) without assuming it as a premise. Why must rank-0 arrays be
boxed values (cells)? That's not self-evident, nor does it seem useful,
especially since APL allegedly works differently.
Bradd W. Szonye