elisp: Vector Functions
6.5 Functions for Vectors
=========================
Here are some functions that relate to vectors:
-- Function: vectorp object
This function returns ‘t’ if OBJECT is a vector.
(vectorp [a])
⇒ t
(vectorp "asdf")
⇒ nil
-- Function: vector &rest objects
This function creates and returns a vector whose elements are the
arguments, OBJECTS.
(vector 'foo 23 [bar baz] "rats")
⇒ [foo 23 [bar baz] "rats"]
(vector)
⇒ []
-- Function: make-vector length object
This function returns a new vector consisting of LENGTH elements,
each initialized to OBJECT.
(setq sleepy (make-vector 9 'Z))
⇒ [Z Z Z Z Z Z Z Z Z]
-- Function: vconcat &rest sequences
This function returns a new vector containing all the elements of
SEQUENCES. The arguments SEQUENCES may be true lists, vectors,
strings or bool-vectors. If no SEQUENCES are given, the empty
vector is returned.
The value is either the empty vector, or is a newly constructed
nonempty vector that is not ‘eq’ to any existing vector.
(setq a (vconcat '(A B C) '(D E F)))
⇒ [A B C D E F]
(eq a (vconcat a))
⇒ nil
(vconcat)
⇒ []
(vconcat [A B C] "aa" '(foo (6 7)))
⇒ [A B C 97 97 foo (6 7)]
The ‘vconcat’ function also allows byte-code function objects as
arguments. This is a special feature to make it easy to access the
entire contents of a byte-code function object. Byte-Code
Objects.
For other concatenation functions, see ‘mapconcat’ in Mapping
Functions, ‘concat’ in Creating Strings, and ‘append’ in
Building Lists.
The ‘append’ function also provides a way to convert a vector into a
list with the same elements:
(setq avector [1 two (quote (three)) "four" [five]])
⇒ [1 two (quote (three)) "four" [five]]
(append avector nil)
⇒ (1 two (quote (three)) "four" [five])