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
を返す。