Bool-vectors
============
A bool-vector is much like a vector, except that it stores only the
values `t' and `nil'. If you try to store any non-`nil' value into an
element of the bool-vector, the effect is to store `t' there. As with
all arrays, bool-vector indices start from 0, and the length cannot be
changed once the bool-vector is created. Bool-vectors are constants
when evaluated.
There are two special functions for working with bool-vectors; aside
from that, you manipulate them with same functions used for other kinds
of arrays.
- Function: make-bool-vector length initial
Return a new bool-vector of LENGTH elements, each one initialized
to INITIAL.
- Function: bool-vector-p object
This returns `t' if OBJECT is a bool-vector, and `nil' otherwise.
Here is an example of creating, examining, and updating a
bool-vector. Note that the printed form represents up to 8 boolean
values as a single character.
(setq bv (make-bool-vector 5 t))
=> #&5"^_"
(aref bv 1)
=> t
(aset bv 3 nil)
=> nil
bv
=> #&5"^W"
These results make sense because the binary codes for control-_ and
control-W are 11111 and 10111, respectively.