有人可以用简单的术语解释Clojure的不引号拼接吗?

时间:2010-12-31 16:05:02

标签: clojure

我正在撞墙试图理解一些使用非引号拼接的Clojure宏,我似乎无法找到任何需要它们的明显扩展。任何人都可以用虚拟术语向我解释一下吗?

1 个答案:

答案 0 :(得分:51)

我不是Clojure的专家,但由于它基本上是一个Lisp,所以事情应该像unquote-splice是unquote,它将列表合并到它所使用的位置。差异看起来像这样:

`(1 2 ~(list 3 4))   =>  (1 2 (3 4))
`(1 2 ~@(list 3 4))  =>  (1 2 3 4)

`  == syntax-quote
~  == unquote
~@ == unquote-splice