【发布时间】:2014-12-10 09:38:21
【问题描述】:
'() 是(quote ()) 的语法糖。但是'[] 是什么意思?引用向量?
例如:
(use '[clojure.test :as t])
(.get '[a b c] 1)
(.containsAll '[a b c] '[b c])
((fnth 5) '[a b c d e])
【问题讨论】:
标签: clojure
'() 是(quote ()) 的语法糖。但是'[] 是什么意思?引用向量?
例如:
(use '[clojure.test :as t])
(.get '[a b c] 1)
(.containsAll '[a b c] '[b c])
((fnth 5) '[a b c d e])
【问题讨论】:
标签: clojure
没错。 ' 是 quote 的同义词,所以
'[a b c]
只是
(quote [a b c])
quote 阻止对 Clojure 代码进行评估,因此引用整个向量与引用其中的每个元素基本相同:
['a 'b 'c]
它允许您生成symbols 的向量,而无需显式调用symbol function:
[(symbol "a") (symbol "b") (symbol "c")]
【讨论】:
user> (= '[a b c] ['a 'b 'c] [(symbol "a") (symbol "b") (symbol "c")]) true