Instead of creating a vector implicitly by using the read syntax just
described, you can create a vector dynamically by calling one of the
vector
and list->vector
primitives with the list of Scheme
values that you want to place into a vector. The size of the vector
thus created is determined implicitly by the number of arguments given.
Return a newly allocated vector composed of the
given arguments. Analogous to list
.
(vector 'a 'b 'c) ⇒ #(a b c)
The inverse operation is vector->list
:
Return a newly allocated list composed of the elements of v.
(vector->list #(dah dah didah)) ⇒ (dah dah didah) (list->vector '(dididit dah)) ⇒ #(dididit dah)
To allocate a vector with an explicitly specified size, use
make-vector
. With this primitive you can also specify an initial
value for the vector elements (the same value for all elements, that
is):
Return a newly allocated vector of len elements. If a second argument is given, then each position is initialized to fill. Otherwise the initial contents of each position is unspecified.
SCM
scm_c_make_vector (size_t k, SCM fill)
¶Like scm_make_vector
, but the length is given as a size_t
.
To check whether an arbitrary Scheme value is a vector, use the
vector?
primitive:
Return #t
if obj is a vector, otherwise return
#f
.
int
scm_is_vector (SCM obj)
¶Return non-zero when obj is a vector, otherwise return
zero
.