cl: Assignment
4.1 Assignment
==============
The ‘cl-psetq’ form is just like ‘setq’, except that multiple
assignments are done in parallel rather than sequentially.
-- Macro: cl-psetq [symbol form]...
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 after ‘x’ was set.
⇒ 15
(setq x 2 y 3)
(cl-psetq x (+ x y) y (* x y))
x
⇒ 5
y ; ‘y’ was computed before ‘x’ was set.
⇒ 6
The simplest use of ‘cl-psetq’ is ‘(cl-psetq x y y x)’, which
exchanges the values of two variables. (The ‘cl-rotatef’ form
provides an even more convenient way to swap two variables;
Modify Macros.)
‘cl-psetq’ always returns ‘nil’.