Next: Rings, Previous: Char-Tables, Up: Sequences Arrays Vectors [Contents][Index]
ブールベクター(bool-vector)はベクターとよく似ていますが、値にt
とnil
しか格納できません。ブールベクターの要素に非nil
値の格納を試みた場合、そこにt
が格納されます。すべての配列と同様、ブールベクターのインデックスは0から開始され、1度ブールベクターが作成されたら、長さを変更することはできません。ブールベクターは定数として評価されます。
ブールベクターを処理する、特別な関数が2つあります。その関数意外にも、他の種類の配列に使用されるのと同じ関数で、ブールベクターを操作できます。
initialに初期化された、length要素の新しいブールベクターをreturnします。
この関数は、objectがブールベクターであればt
、それ以外はnil
をreturnします。
以下で説明するように、ブールベクターのセット処理を行なう関数がいくつかあります:
ブールベクターaとbの、ビットごとの排他的論理和(bitwise exclusive or)をreturnします。オプション引数cが与えられた場合、この処理の結果はcに格納されます。引数はすべて、同じ長さのブールベクターを指定します。
ブールベクターaとbの、ビットごとの論理和(bitwise or)をreturnします。オプション引数cが与えられた場合、この処理の結果はcに格納されます。引数はすべて、同じ長さのブールベクターを指定します。
ブールベクターaとbの、ビットごとの論理積(bitwise and)をreturnします。オプション引数cが与えられた場合、この処理の結果はcに格納されます。引数はすべて、同じ長さのブールベクターを指定します。
ブールベクターaとbの、差集合(set difference)をreturnします。オプション引数cが与えられた場合、この処理の結果はcに格納されます。引数はすべて、同じ長さのブールベクターを指定します。
ブールベクターaの、補集合(set complement)をreturnします。オプション引数bが与えられた場合、この処理の結果はbに格納されます。引数はすべて、同じ長さのブールベクターを指定します。
a内のすべてのt
値が、bでもt
値の場合はt
、それ以外はnil
をreturnします。引数はすべて、同じ長さのブールベクターを指定します。
iから始まるaの、bと等しい連続する要素の数をreturnします。a
はブールベクターで、bはt
かnil
、iはa
のインデックスです。
ブールベクターaの、t
の要素の数をreturnします。
以下はブールベクターを作成、確認、更新する例です。長さ8以下のブール値のプリント表記は、1つの文字で表されることに注意してください。
(setq bv (make-bool-vector 5 t)) ⇒ #&5"^_" (aref bv 1) ⇒ t (aset bv 3 nil) ⇒ nil bv ⇒ #&5"^W"
control-_の2進コードは11111、control-Wは10111なので、この結果は理解できるでしょう。