複数の要素を変更する - lisp-cookbook-ja/common-lisp GitHub Wiki

配列

複数の要素を変更する

setfsubseq を組み合わせることにより読み出した列に値を格納できます。 格納する値が切り出した配列のサイズより大きい場合は、切り出したサイズに切り詰められます。

(let ((a (vector 1 2 3 4 5)))
  (setf (subseq a 2)
        (nreverse (subseq a 2)))
  a)
;=> #(1 2 5 4 3)

(let ((a (vector 1 2 3 4 5)))
  (setf (subseq a 2)
        #(a b c d e f g))
  a)
;=> #(1 2 A B C)