top
up

3.9VectorsπŸ”— i

A vector is a fixed-length array of arbitrary values. Unlike a list, a vector supports constant-time access and update of its elements.

A vector prints similar to a list—as a parenthesized sequence of its elements—but a vector is prefixed with # after ', or it uses vector if one of its elements cannot be expressed with quote .

For a vector as an expression, an optional length can be supplied. Also, a vector as an expression implicitly quote s the forms for its content, which means that identifiers and parenthesized forms in a vector constant represent symbols and lists.

+Reading Vectors in The Racket Reference documents the fine points of the syntax of vectors.

Examples:
> #("a" "b" "c")

'#("a" "b" "c")

> #(name (that tune))

'#(name (that tune))

> #4(baldwin bruce)

'#(baldwin bruce bruce bruce)

> (vector-ref #("a""b""c")1)

"b"

> (vector-ref #(name(thattune))1)

'(that tune)

Like strings, a vector is either mutable or immutable, and vectors written directly as expressions are immutable.

Vectors can be converted to lists and vice versa via vector->list and list->vector ; such conversions are particularly useful in combination with predefined procedures on lists. When allocating extra lists seems too expensive, consider using looping forms like for/fold , which recognize vectors as well as lists.

Example:
(vector->list #("three""blind""mice"))))

'#("Three" "Blind" "Mice")

+Vectors in The Racket Reference provides more on vectors and vector procedures.

top
up

AltStyle γ«γ‚ˆγ£γ¦ε€‰ζ›γ•γ‚ŒγŸγƒšγƒΌγ‚Έ (->γ‚ͺγƒͺγ‚ΈγƒŠγƒ«) /