www.delorie.com/gnu/docs/elisp-manual-21/elisp_97.html   search  
Buy the book!

GNU Emacs Lisp Reference Manual

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

6.7 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
     => #&5"^W"

These results make sense because the binary codes for control-_ and control-W are 11111 and 10111, respectively.

  webmaster   donations   bookstore     delorie software   privacy  
  Copyright 2003   by The Free Software Foundation     Updated Jun 2003