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

Re: various comments

Jussi Piitulainen <jpiitula@xxxxxxxxxxxxxxxx> writes:

> S.H.M.J. Houben wrote on Mon, 2001 Nov 12:

[ ... ]

> > Interesting proposal.
> > 2. I don't think array-dimensions is a good name. I would [...]
> >    what about calling it array-number-of-dimensions ?
> Too unwieldy. I'd rather call it haulong. What about array-dim? Or
> array-rank again, though somebody used to oppose that (because matrix
> rank is something else altogether).

"Array-dimensionality" ?  I still prefer array-rank, not believing that
many will confound it with matrix rank.  "Rank" is used to specify
the number of dimensions of a tensor, without any confusion.

> > 3. I don't like the shape format. It is logically a list of pairs:

[ ... ]

> Also, (shape 0 4 0 4) does not get more complicated when an individual
> index expression gets more complicated. List structure would really
> favour constant bounds. Compare
>     (shape b (* 2 e) b (+ e 1))
>     (list (list b (* 2 e)) (list b (+ e 1)))

One would typically write `((,b ,(* 2 e)) (,b ,(+ e 1))) which is
only a little less perspicuous than the (shape ...) example.

> and also notice that the very word "shape" there communicates intent
> to the reader, while "list" does not.

"Shape" is a very generic sort of word, likely to be used in other
contexts -- did you consider "array-shape" ?

> > 4. Apparently arrays are supposed to be disjoint from vectors.
> >    This could be made more explicit. Also, this means that even
> >    1-dimensional 0-based arrays are disjoint from vectors?
> Hm. Maybe that should be more explicit. Yes, I think they are best
> disjoint. Array-ref and friends might be able to access vectors
> transparently, with runtime cost, but I would not want to ask
> implementors to make vector-ref and friends able to access certain
> kinds of multidimensional arrays. They might just refuse.

Nevertheless, using the array functions with vector arguments can
be very convenient, could disjointness from vectors (and even strings)
be left unspecified?