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 ab) ではなく(list 'a 'b) と同等です。

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

おそらくあなたが望む比較です。

于 2012-07-29T01:56:18.387 に答える