GNU Emacs 32.0.50 (9008bf64c3) のマニュアルを PLaMo 翻訳で機械翻訳したものです。誤訳を含むことがあります。原文: https://www.gnu.org/software/emacs/manual/html_node/elisp/Bool_002dVector-Type.html ・ emacs-doc.conao3.com

2.4.11 Bool-Vector型

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