Next: Generalized Variables, Up: Control Structure [Contents][Index]

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`form`s 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. ⇒ 6The 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; see Modify Macros.)`cl-psetq`

always returns`nil`

.