Next: Generalized Variables, Previous: Control Structure, Up: Control Structure [Contents][Index]
The psetq
form is just like setq
, except that multiple
assignments are done in parallel rather than sequentially.
This special form (actually a macro) is used to assign to several
variables simultaneously. Given only one symbol and form,
it has the same effect as setq
. Given several symbol
and form pairs, it evaluates all the forms in advance
and then stores the corresponding variables afterwards.
(setq x 2 y 3) (setq x (+ x y) y (* x y)) x ⇒ 5 y ;y
was computed afterx
was set. ⇒ 15 (setq x 2 y 3) (psetq x (+ x y) y (* x y)) x ⇒ 5 y ;y
was computed beforex
was set. ⇒ 6
The simplest use of psetq
is (psetq x y y x)
, which
exchanges the values of two variables. (The rotatef
form
provides an even more convenient way to swap two variables;
see Modify Macros.)
psetq
always returns nil
.