Next: Rings, Previous: Char-Tables, Up: Sequences Arrays Vectors [Contents][Index]
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.
Return a new bool-vector of length elements, each one initialized to initial.
This returns t
if object is a bool-vector,
and nil
otherwise.
There are also some bool-vector set operation functions, described below:
Return bitwise exclusive or of bool vectors a and b. If optional argument c is given, the result of this operation is stored into c. All arguments should be bool vectors of the same length.
Return bitwise or of bool vectors a and b. If optional argument c is given, the result of this operation is stored into c. All arguments should be bool vectors of the same length.
Return bitwise and of bool vectors a and b. If optional argument c is given, the result of this operation is stored into c. All arguments should be bool vectors of the same length.
Return set difference of bool vectors a and b. If optional argument c is given, the result of this operation is stored into c. All arguments should be bool vectors of the same length.
Return set complement of bool vector a. If optional argument b is given, the result of this operation is stored into b. All arguments should be bool vectors of the same length.
Return t
if every t
value in a is also t in
b, nil
otherwise. All arguments should be bool vectors of the
same length.
Return the number of consecutive elements in a equal b
starting at i. a
is a bool vector, b is t
or nil
, and i is an index into a
.
Return the number of elements that are t
in bool vector a.
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.
Next: Rings, Previous: Char-Tables, Up: Sequences Arrays Vectors [Contents][Index]