Next: Selecting Vector Components, Previous: Vectors, Up: Vectors [Contents][Index]
Returns a newly allocated vector of k elements. If object
is specified, make-vector
initializes each element of the vector
to object. Otherwise the initial elements of the result are
unspecified.
Returns a newly allocated vector whose elements are the given arguments.
vector
is analogous to list
.
(vector 'a 'b 'c) ⇒ #(a b c)
Returns a newly allocated vector that is a copy of vector.
Returns a newly allocated vector initialized to the elements of
list. The inverse of list->vector
is vector->list
.
(list->vector '(dididit dah)) ⇒ #(dididit dah)
It is an error if any element of vector is not a character.
The vector->string
procedure returns a newly allocated string
of the objects contained in the elements of vector between
start and end. The string->vector
procedure
returns a newly created vector initialized to the elements of the
string string between start and end.
In both procedures, order is preserved.
(string->vector "ABC") ⇒ #(#\A #\B #\C) (vector->string #(#\1 #\2 #\3) ⇒ "123"
Similar to make-vector
, except that the elements of the result
are determined by calling the procedure initialization on the
indices. For example:
(make-initialized-vector 5 (lambda (x) (* x x))) ⇒ #(0 1 4 9 16)
K must be greater than or equal to the length of vector.
Returns a newly allocated vector of length k. The first
(vector-length vector)
elements of the result are
initialized from the corresponding elements of vector. The
remaining elements of the result are unspecified.
It is an error if procedure does not accept as many arguments as there are vectors and return a single value.
The vector-map
procedure applies procedure element-wise
to the elements of the vectors and returns a vector of the
results, in order. If more than one vector is given and not all
vectors are the same length, vector-map
terminates when the
shortest vector runs out. The dynamic order in which procedure
is applied to the elements of the vectors is unspecified. If
multiple returns occur from vector-map
, the values returned by
earlier returns are not mutated.
(vector-map cadr '#((a b) (d e) (g h))) ⇒ #(b e h)
(vector-map (lambda (n) (expt n n)) '#(1 2 3 4 5))
⇒ #(1 4 27 256 3125)
(vector-map + '#(1 2 3) '#(4 5 6 7)) ⇒ #(5 7 9)
(let ((count 0))
(vector-map (lambda (ignored)
(set! count (+ count 1))
count)
'#(a b))) ⇒ #(1 2) or #(2 1)
It is an error if procedure does not accept as many arguments as there are vectors.
The arguments to vector-for-each
are like the arguments to
vector-map
, but vector-for-each
calls procedure for
its side effects rather than for its values. Unlike vector-map
,
vector-for-each
is guaranteed to call procedure on the
elements of the vectors in order from the first element(s) to
the last, and the value returned by vector-for-each
is
unspecified. If more than one vector is given and not all
vectors have the same length, vector-for-each
terminates when
the shortest vector runs out. It is an error for
procedure to mutate any of the vectors.
Next: Selecting Vector Components, Previous: Vectors, Up: Vectors [Contents][Index]