Next: , Previous: , Up: 制御構造   [Contents][Index]


4.1 代入

psetqフォームはsetqに似ているが、多重代入が順次ではなく 並列になされる点が異なる。

Special Form: psetq [symbol form]…

この特殊形式(実際はマクロ)は同時にいくつかの変数に代入するために 使われる。1個だけのsymbolformを与えられると、setq と同じ効果を持つ。いくつかのsymbolformの対を 与えられると、すべてのformをあらかじめ評価し、その後対応する 変数へ格納する。

(setq x 2 y 3)
(setq x (+ x y)  y (* x y))
x
     ⇒ 5
y                     ; yxが設定された後に計算された。
     ⇒ 15
(setq x 2 y 3)
(psetq x (+ x y)  y (* x y))
x
     ⇒ 5
y                     ; yxが設定される前に計算された。
     ⇒ 6

最も単純なpsetqの使用法は(psetq x y y x)であり、2個の 変数の値を交換する。(rotatefフォームは2個の変数の交換により 便利な方法を提供する; see 修正マクロ)

psetqは常にnilを返す。