代入(setf) - lisp-cookbook-ja/common-lisp GitHub Wiki

制御構造

setfは値を格納する場所への読み込みと書き込みの操作をシンボル以外の任意のものに一般化し拡張した構文(マクロ)です。

> x
;=> 1
> (setf x 2)
;=> 2
> (car y)
;=> 1
> (setf (car y) 2)
;=> 2
> z
;=> #(1 2 3)
> (setf (aref z 2) 4)
;=> 4
> z
;=> #(1 2 4)

一般になんらかの読み込み操作が与えられた場合、

(setf (読み込み操作) 新しい値)

によって書き込み操作を行えます。

setfは第2引数を返します。