如何在不使用第三个变量的情况下在LISP中交换两个变量?
答案 0 :(得分:25)
(rotatef a b)
答案 1 :(得分:1)
此外:
(让((a b) (b a)) ...)
答案 2 :(得分:1)
另一种选择,“并行设置”:
(psetf a b b a)
答案 3 :(得分:0)
又一种方法:
(setf (values a b) (values b a))
答案 4 :(得分:-3)
相当可怕的方法,它只适用于数值,但它更通用,而不依赖于语法:
a = a ^ b
b = a ^ b
a = a ^ b
假设之前分配了a和b,则^表示逻辑独占替代。