Function: VECTOR-PUSH-EXTEND*

Source

(defun vector-push-extend* (vector &rest items)
  (let ((element-type (array-element-type vector)))
    (dolist (item items)
      (cond
        ((typep item element-type) ;; item can be put directly into the 
         (vector-push-extend item vector))
        ((typep item `(vector ,element-type)) ;; item should be a vector
         (loop
            for i across item
            do (vector-push-extend i vector)))
        (t
         (error "Bad type for item ~S." item))))
    vector))
Source Context