ToC | DocOverview | CGDoc | RelNotes | Index | PermutedIndex
| Allegro CL

| 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.

© Franz Inc. All Rights Reserved - File last updated 2022-07-25