配列の各要素に関数を適用し配列を作成する - lisp-cookbook-ja/common-lisp GitHub Wiki

配列

配列の各要素に関数を適用し配列を作成する

map はシークエンス全般に使用できます。第1引数にシークエンスの型を指定することにより任意のシークエンスが作成可能です。

(let ((v (vector 1 2 3 2 1 2 3 2 1)))
  (map 'vector #'1+ v ))
;=> #(2 3 4 3 2 3 4 3 2)

また、map-into は、第1引数にシークエンスそのものを指定することにより、結果を元のシークエンスに代入して返します。 元のシークエンスは破壊的に変更されます。

(let ((v (vector 1 2 3 2 1 2 3 2 1)))
  (map-into v #'1+ v ))
;=> #(2 3 4 3 2 3 4 3 2)