#(
and )
are used to notate a simple vector.
If an unsigned decimal integer
appears between the #
and (
,
it specifies explicitly the length of the vector.
The consequences are undefined if the number of objects
specified before the closing )
exceeds the unsigned decimal integer.
If the number of objects supplied before the closing )
is less than the unsigned decimal integer but greater than zero,
the last object
is used to fill all
remaining elements of the vector.
[Editorial Note by Barmar: This should say "signals...".]
The consequences are undefined if the unsigned decimal integer is non-zero and
number of objects supplied before the closing )
is zero.
For example,
#(a b c c c c)
#6(a b c c c c)
#6(a b c)
#6(a b c c)
all mean the same thing: a vector of length 6
with elements a
, b
, and four occurrences of c
.
Other examples follow:
#(a b c) ;A vector of length 3
#(2 3 5 7 11 13 17 19 23 29 31 37 41 43 47)
;A vector containing the primes below 50
#() ;An empty vector
The notation #()
denotes an empty vector, as does #0()
.
For information on how the Lisp printer prints vectors, see Printing Strings, Printing Bit Vectors, or Printing Other Vectors.