[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
- To: Richard Berman <email@example.com>
- Subject: arrays
- From: David A. Moon <Moon@STONY-BROOK.SCRC.Symbolics.COM>
- Date: Wed, 20 May 87 20:20 EDT
- Cc: firstname.lastname@example.org
- In-reply-to: <8705202322.AA05367@vaxa.isi.edu>
Date: Wed, 20 May 87 16:22:48 PDT
From: Richard Berman <email@example.com>
On bit vectors:
on page 12:
"One dimensional arrays of bits (that is, of integers whose values are 0 or 1)
are called bit vectors"
implies that any array of all 0 and 1 integers is a bit vector.
"All implementations are also required to provide specialized arrays of bits,
that is, arrays of type (array bit); the one-dimensional instances of this
specialization are called bit-vectors."
"Vectors whose elements are restricted to type bit are called bit-vectors"
This implies strongly that a bit vector won't let one store any other value
than 0 or 1.
I think the imprecise language on page 12 should not be assumed to overrule
the more precise language on pages 29 and 286. So bit-vector and bit-array
refer to the specialized types. Another way of saying this is that you cannot
change whether an object is a bit-vector (or a bit-array) by using setf of aref,
or indeed by using any other Common Lisp feature (read the description of the
:element-type argument to adjust-array carefully).
It is my *opinion* that #(1 0 0 1) is not a bit vector because there is a
precise input style for such (like *1001) and bit vectors are specialized.
I'm sure you're right.
- From: Richard Berman <firstname.lastname@example.org>