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

Re: various comments



Per Bothner writes:

> Not sure what you mean, but it sounds wrong. Instead we should
> follow logic and Common Lisp (or at least let implementations have
> that option): (vector? obj) should imply (array? obj).

I was just trying to see how that could be implemented on top of R5RS
vectors, given disjoint types.

By all means let us allow implementations to make vectors a subtype of
arrays. I have doubts about requiring them to do so - would they? You
might, I see, but somebody else might refuse the whole package on that
account.

But it seems like the details should be worked out, just to be sure.
My feeling is that arrays can live happily either joint or disjoint
with vectors, but if joint, then it must be clean both ways, so that
all zero-based one-dimensional arrays are vectors, and vectors must be
sharable just like any array.

> The reverse would be true if you take the view that arrays are
> nested vectors,

I don't. I think of arrays as maps from indexes to locations. Nesting
of vectors is an implementation detail, and not quite compatible with
the present proposal.

> It also is difficult to distinguish a 0*M array from a 0*N array
[...]
> That is unless you can associate "types" with empty vectors. Some
> APL dialects to that, and it gets a little strange.

Shapes are just such types, I think.
-- 
Jussi