GNU Info

Info Node: (elisp)Array Type

(elisp)Array Type


Next: String Type Prev: Cons Cell Type Up: Programming Types
Enter node , (file) or (file)node

Array Type
----------

   An "array" is composed of an arbitrary number of slots for holding
or referring to other Lisp objects, arranged in a contiguous block of
memory.  Accessing any element of an array takes approximately the same
amount of time.  In contrast, accessing an element of a list requires
time proportional to the position of the element in the list.  (Elements
at the end of a list take longer to access than elements at the
beginning of a list.)

   Emacs defines four types of array: strings, vectors, bool-vectors,
and char-tables.

   A string is an array of characters and a vector is an array of
arbitrary objects.  A bool-vector can hold only `t' or `nil'.  These
kinds of array may have any length up to the largest integer.
Char-tables are sparse arrays indexed by any valid character code; they
can hold arbitrary objects.

   The first element of an array has index zero, the second element has
index 1, and so on.  This is called "zero-origin" indexing.  For
example, an array of four elements has indices 0, 1, 2, and 3.  The
largest possible index value is one less than the length of the array.
Once an array is created, its length is fixed.

   All Emacs Lisp arrays are one-dimensional.  (Most other programming
languages support multidimensional arrays, but they are not essential;
you can get the same effect with an array of arrays.)  Each type of
array has its own read syntax; see the following sections for details.

   The array type is contained in the sequence type and contains the
string type, the vector type, the bool-vector type, and the char-table
type.


automatically generated by info2www version 1.2.2.9