[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
A sequence is a Lisp object that represents an ordered set of elements. There are two kinds of sequence in Emacs Lisp, lists and arrays. Thus, an object of type list or of type array is also considered a sequence.
Arrays are further subdivided into strings, vectors, char-tables and
bool-vectors. Vectors can hold elements of any type, but string
elements must be characters, and bool-vector elements must be t
or nil
. Char-tables are like vectors except that they are
indexed by any valid character code. The characters in a string can
have text properties like characters in a buffer (see section 32.19 Text Properties), but vectors do not support text properties, even when
their elements happen to be characters.
Lists, strings and the other array types are different, but they have
important similarities. For example, all have a length l, and all
have elements which can be indexed from zero to l minus one.
Several functions, called sequence functions, accept any kind of
sequence. For example, the function elt
can be used to extract
an element of a sequence, given its index. See section 6. Sequences, Arrays, and Vectors.
It is generally impossible to read the same sequence twice, since
sequences are always created anew upon reading. If you read the read
syntax for a sequence twice, you get two sequences with equal contents.
There is one exception: the empty list ()
always stands for the
same object, nil
.