7

如何在不使用第三个变量的情况下在 LISP 中交换两个变量?

4

5 回答 5

25
(rotatef a b)
于 2009-02-10T01:28:27.060 回答
1

还:

(让 ((ab) (ba)) ...)

于 2009-07-09T00:33:49.580 回答
1

另一种选择,“并行 setf”:

(psetf 阿巴)

于 2012-11-08T20:38:23.870 回答
0

还有一种方法:

(setf (values a b) (values b a))
于 2017-01-16T19:51:44.137 回答
-3

相当可怕的方法,它仅适用于数值,但它更通用且不依赖于语法:

a = a^b

b = a^b

a = a^b

假设之前分配了 a 和 b, ^ 表示逻辑排他选择。

于 2014-02-28T18:28:41.827 回答