Используйте DESTRUCTURING-BIND , что может сделать намного больше, чем распаковка кортежей.Как присвоение по ключевым словам, необязательные параметры и т. Д. Действительно, все, что вы можете сделать со списком параметров функции.
Но если у вас нет списка, который нужно деструктурировать, и вы хотите установить кучу переменныходновременно используйте PSETF :
(psetf n 1
p 2)
Вы также можете использовать SETF, но PSETF является более близким аналогом назначения кортежей: он работает, например, для обмена / перестановки значений.
# Python
n, p = p, n
x, y, z = z, x, y
;; Lisp
(psetf n p
p n)
(psetf x z
y x
z y)
На самом деле, вы, вероятно, можете обойтись без обыденного LET.
Кроме того, не беспокойтесь о SETQ.Используйте SETF / PSETF, потому что они лучше, и, кроме того, единственный способ выполнить определенные типы назначений.