有人可以用简单的语言来解释Clojure的拼写吗?

为了理解一些Clojure的macros,我拼命地靠在墙上试图理解一些使用unquote-splice的Clojuremacros,我似乎无法find需要的任何明确的扩展。 任何人都可以用虚拟的术语向我解释吗?

我不是Clojure方面的专家,但是因为它基本上是一个Lisp,所以事情应该是这样的:不加引号的拼接不会将列表合并到使用的位置。 差异看起来像这样:

`(1 2 ~(list 3 4)) => (1 2 (3 4)) `(1 2 ~@(list 3 4)) => (1 2 3 4) ` == syntax-quote ~ == unquote ~@ == unquote-splice