|   | 
 ANSI Common Lisp    15 Arrays    15.2 Dictionary of Arrays
 
| 15.2.31  vector-push, vector-push-extend | 
Function | 
  
 - Syntax:
 - 
vector-push
new-element vector
  
  new-index-p
vector-push-extend
new-element vector &optional extension
    new-index
 
  - Arguments and Values:
 - 
new-element - an object.
vector - a vector with a fill pointer.
 
extension - a positive integer.
 The default is implementation-dependent.
 
new-index-p - a valid array index for vector, or nil.
 
new-index - a valid array index for vector.
 
  - Description:
 - 
vector-push and vector-push-extend store 
new-element in vector.
vector-push attempts to store
new-element 
in the element of vector designated by the fill pointer,
and to increase the fill pointer by one.  If the 
(>= (fill-pointer vector) (array-dimension vector 0)),
neither vector nor its fill pointer are affected.
Otherwise, the store and increment take
place and vector-push 
returns the former value of the fill pointer
which is one less than the one it leaves in vector.
vector-push-extend is just like vector-push except
that if the fill pointer gets too large, vector is extended using
adjust-array so that it can contain more elements.
Extension
is the minimum number of elements to be added to vector if it
must be extended.
 
vector-push and 
vector-push-extend return the index of new-element in vector.
If (>= (fill-pointer vector) (array-dimension vector 0)),
vector-push returns nil.
 
  - Examples:
 - 
 (vector-push (setq fable (list 'fable))
              (setq fa (make-array 8 
                                   :fill-pointer 2
                                   :initial-element 'first-one)))   2 
 (fill-pointer fa)   3 
 (eq (aref fa 2) fable)   true
 (vector-push-extend #\X
                    (setq aa 
                          (make-array 5
                                      :element-type 'character
                                      :adjustable t
                                      :fill-pointer 3)))   3 
 (fill-pointer aa)   4 
 (vector-push-extend #\Y aa 4)   4 
 (array-total-size aa)    at least 5 
 (vector-push-extend #\Z aa 4)   5 
 (array-total-size aa)   9 ;(or more)
  - Affected By:
 - 
The value of the fill pointer.
How vector was created.
 
  - Exceptional Situations:
 - 
An error of type error is signaled by vector-push-extend
if it tries to extend vector and vector is not actually adjustable.
An error of type error is signaled if vector does not 
have a fill pointer.
 
  - See Also:
 - 
adjustable-array-p, fill-pointer, vector-pop
  - Allegro CL Implementation Details:
 - 
 None.
  
 |