bool-vectorとは、要素がtまたはnilでなければならない1次元配列のことです。
bool-vectorの文字列表現は文字列に似ていますが、先頭に‘#&’が続き、その後に長さが記述される点が異なります。それに続く文字列定数は、実際にはbool-vectorの内容をビットマップとして指定しています。文字列の各文字は8ビットで構成されており、それがbool-vectorの次の8つの要素を指定します(1はtを、0はnilを表します)。文字の最下位ビットは、bool-vectorの最も低いインデックスに対応します。
(make-bool-vector 3 t)
⇒ #&3"^G"
(make-bool-vector 3 nil)
⇒ #&3"^@"
これらの結果は理にかなっている。というのも、‘C-g’の2進コードは111であり、‘C-@’はコード0の文字だからである。
長さが8の倍数でない場合、出力表示には余分な要素が現れますが、これらが実質的な影響を及ぼすことはありません。例えば、次の例では、最初の3ビットのみが使用されるため、2つのbool-vectorは等しくなります:
(equal #&3"\377" #&3"\007")
⇒ t