vector - make a new vector with the given arguments
LIBRARY
(import (rnrs)) ;R6RS
(import (rnrs base)) ;R6RS
(import (scheme r5rs)) ;R7RS
(import (scheme base)) ;R7RS
SYNOPSIS
(vector obj ...)
DESCRIPTION
Returns a newly allocated vector whose elements contain
the given arguments.
IMPLEMENTATION NOTES
Some implementations allocate a new object every time this procedure
returns an empty vector. One such implementation is Chicken 5.2.0.
Other implementations, like Chez Scheme 9.5, return the same empty
vector object every time.
RETURN VALUES
Returns a newly allocated vector.
If this procedure is called without arguments it returns the empty
vector, which may or may not be newly allocated.
EXAMPLES
(vector 'a 'b 'c) => #(a b c)
; Newly allocated vectors are mutable:
(define x (vector 'a 'b 'c))
(vector-set! x 0 'A)
x => #(A b c)
; Vector literals are immutable (but implementations may or
; may not catch this error):
(define x '#(a b c))
(vector-set! x 0 'A) => error
; Implementations are free to choose if they use one or
; multiple objects to represent the empty vector.
(eq? (vector) (vector)) => #t or #f
APPLICATION USAGE
Applications should avoid calling this procedure with an unknown
number of arguments. The arguments are passed on the stack, which
may not be able to handle a very large number of arguments.
A better way to convert a list to a vector is with the
list->vector(3scm)
procedure.
COMPATIBILITY
The
vector
procedure enjoys wide support across Lisp dialects.
ERRORS
This procedure does not raise exceptions, but it may cause an
out-of-memory condition which generally cannot be handled.
SEE ALSO
list->vector(3scm),
make-vector(3scm),
list(3scm)
STANDARDS
R4RS,
IEEE Scheme,
R5RS,
R6RS,
R7RS
AUTHORS
This page is part of the
scheme-manpages
project.
It includes materials from the RnRS documents.
More information can be found at
https://github.com/schemedoc/manpages/
.
Markup created by unroff 1.0sc, March 04, 2023.