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

Re: SRFI-10 syntax vs. #nA syntax



Bradd W. Szonye wrote:

There is also a problem in that the syntax fails in the case of rank-0
arrays.  That is an argument for leaving in the 'A'.

I have a better solution: If the "array" has rank 0, also omit the "#"!
After all, that's what the Scheme writer will do when printing a scalar.

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.  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.

I don't think the reader/writer/programmer interface needs to support an
array syntax for 0-rank "arrays," however. Indeed, I suspect that it
shouldn't, because it just introduces a "noise" token that can obfuscate
data but provide no real information.

The difference is that between a cell and the value stored in the cell.
--
	--Per Bothner
per@xxxxxxxxxxx   http://per.bothner.com/