#

System Class VECTOR

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 Section 15.1.2.1 (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:

Section 15.1.2.2 (Required Kinds of Specialized Arrays), Section 2.4.8.3 (Sharpsign Left-Parenthesis), Section 22.1.3.7 (Printing Other Vectors), Section 2.4.8.12 (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.

The following X3J13 cleanup issues, not part of the specification, apply to this section:

- ARRAY-TYPE-ELEMENT-TYPE-SEMANTICS:UNIFY-UPGRADING
- ARRAY-DIMENSION-LIMIT-IMPLICATIONS:ALL-FIXNUM

Copyright 1996-2005, LispWorks Ltd. All rights reserved.