Next: Bit Strings, Previous: Lists, Up: Top

Vectors are heterogenous structures whose elements are indexed by exact non-negative integers. A vector typically occupies less space than a list of the same length, and the average time required to access a randomly chosen element is typically less for the vector than for the list.

The length of a vector is the number of elements that it contains. This number is an exact non-negative integer that is fixed when the vector is created. The valid indexes of a vector are the exact non-negative integers less than the length of the vector. The first element in a vector is indexed by zero, and the last element is indexed by one less than the length of the vector.

Vectors are written using the notation `#(`

`object`` ...)`

.
For example, a vector of length 3 containing the number zero in element
0, the list `(2 2 2 2)`

in element 1, and the string `"Anna"`

in element 2 can be written as

#(0 (2 2 2 2) "Anna")

Note that this is the external representation of a vector, not an expression evaluating to a vector. Like list constants, vector constants must be quoted:

'#(0 (2 2 2 2) "Anna") => #(0 (2 2 2 2) "Anna")

A number of the vector procedures operate on subvectors. A
subvector is a segment of a vector that is specified by two exact
non-negative integers, `start` and `end`. `Start` is the
index of the first element that is included in the subvector, and
`end` is one greater than the index of the last element that is
included in the subvector. Thus if `start` and `end` are the
same, they refer to a null subvector, and if `start` is zero and
`end` is the length of the vector, they refer to the entire vector.
The valid indexes of a subvector are the exact integers between
`start` inclusive and `end` exclusive.