psetqフォームはsetqに似ているが、多重代入が順次ではなく
並列になされる点が異なる。
この特殊形式(実際はマクロ)は同時にいくつかの変数に代入するために
使われる。1個だけのsymbolとformを与えられると、setq
と同じ効果を持つ。いくつかのsymbolとformの対を
与えられると、すべてのformをあらかじめ評価し、その後対応する
変数へ格納する。
(setq x 2 y 3)
(setq x (+ x y) y (* x y))
x
⇒ 5
y ; yはxが設定された後に計算された。
⇒ 15
(setq x 2 y 3)
(psetq x (+ x y) y (* x y))
x
⇒ 5
y ; yはxが設定される前に計算された。
⇒ 6
最も単純なpsetqの使用法は(psetq x y y x)であり、2個の
変数の値を交換する。(rotatefフォームは2個の変数の交換により
便利な方法を提供する; see 修正マクロ)
psetqは常にnilを返す。