3
我正在運行一些4Clojure問題,並用我的一些代碼打了一些奇怪的行爲。進一步調查後,似乎罪魁禍首是使用引用宏與列表函數。爲什麼在下面的代碼中這很重要,爲什麼會產生不正確的結果?爲什麼這些Clojure列表不同?
user=> (= (class '(/ 1 2)) (class (list/1 2)))
true
user=> (def a '(/ 1 2))
#'user/a
user=> (def b (list/1 2))
#'user/b
user=> (class a)
clojure.lang.PersistentList
user=> (class b)
clojure.lang.PersistentList
user=> (apply (first a) (rest a))
2
user=> (apply (first b) (rest b))
1/2
user=> (class (first a))
clojure.lang.Symbol
user=> (class (first b))
clojure.core$_SLASH_