6

看这个例子:

Clojure 1.4.0
user=> (def a 1)
#'user/a
user=> (def b 2)
#'user/b
user=> (= [1 2] [a b])
true
user=> (= '(1 2) '(1 2))
true
user=> (= '(1 2) '(a b))
false

为什么最后一个案例不起作用,以及如何使最后一个案例工作而无需将列表转换为向量?

谢谢!

4

1 回答 1

15

您正在将包含 1 和 2 的列表与包含符号 a 和 b 的列表进行比较。符号是 Clojure 中的合法值。'(ab) 等价于 (list 'a 'b)而不是(list ab)。

 (= '(1 2) (list a b))

可能是您想要的比较。

于 2012-07-29T01:56:18.387 回答