Clojure语言中的"[]"代表什么意思?

3

'()(quote ()) 的语法糖。但是,'[] 是什么意思?引用一个向量吗?

例如:

(use '[clojure.test :as t])

(.get '[a b c] 1)

(.containsAll '[a b c] '[b c])

((fnth 5) '[a b c d e])
1个回答

13

没错,'quote 的同义词,因此

'[a b c]

只是

(quote [a b c])

quote 防止 Clojure 代码的计算,因此引用整个向量基本上与引用其每个单独元素相同:

['a 'b 'c]

它允许您生成一个符号的向量,而不必显式调用symbol函数

[(symbol "a") (symbol "b") (symbol "c")]

2
谢谢您的解释!user> (= '[a b c] ['a 'b 'c] [(symbol "a") (symbol "b") (symbol "c")]) true - Nick

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接