[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
6.7.3.2 Dynamic Vector Creation and Validation
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.
- Scheme Procedure: vector arg …
- Scheme Procedure: list->vector l
- C Function: scm_vector (l)
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
:
- Scheme Procedure: vector->list v
- C Function: scm_vector_to_list (v)
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):
- Scheme Procedure: make-vector len [fill]
- C Function: scm_make_vector (len, fill)
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.
- C Function: SCM scm_c_make_vector (size_t k, SCM fill)
Like
scm_make_vector
, but the length is given as asize_t
.
To check whether an arbitrary Scheme value is a vector, use the
vector?
primitive:
- Scheme Procedure: vector? obj
- C Function: scm_vector_p (obj)
Return
#t
if obj is a vector, otherwise return#f
.
- C Function: int scm_is_vector (SCM obj)
Return non-zero when obj is a vector, otherwise return
zero
.
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This document was generated on April 20, 2013 using texi2html 5.0.