#### 15.2.3 vector [System Class]

#### Class Precedence List::

vector, array, sequence, t

#### Description::

Any one-dimensional array is a vector.

The type vector is a subtype of type array; for all types `x`, `(vector x)` is the same as `(array x (*))`.

The type `(vector t)`, the type string, and the type bit-vector are disjoint subtypes of type vector.

#### Compound Type Specifier Kind::

Specializing.

#### Compound Type Specifier Syntax::

(`vector`{`[`{element-type | *} [{size | *}]`]`})

#### Compound Type Specifier Arguments::

size—a non-negative fixnum.

element-type—a type specifier.

#### Compound Type Specifier Description::

This denotes the set of specialized vectors whose element type and dimension match the specified values. Specifically:

If element-type is the symbol *, vectors are not excluded on the basis of their element type. Otherwise, only those vectors are included whose actual array element type

is the result of upgrading element-type; see Array Upgrading.

If a size is specified, the set includes only those vectors whose only dimension is size. If the symbol * is specified instead of a size, the set is not restricted on the basis of dimension.

#### See Also::

Required Kinds of Specialized Arrays, Sharpsign Left-Parenthesis, Printing Other Vectors, Sharpsign A

#### Notes::

The type `(vector e s)` is equivalent to the type `(array e (s))`.

The type `(vector bit)` has the name bit-vector.

The union of all types `(vector C)`, where C is any subtype of character, has the name string.

`(vector *)` refers to all vectors regardless of element type, `(vector type-specifier)` refers only to those vectors that can result from giving type-specifier as the `:element-type` argument to make-array.