我在努力理解一些使用unquote-splice的Clojure宏,但似乎找不到任何清晰的解释说明它们的需要性。有人能用白痴化的术语向我解释吗?
我在努力理解一些使用unquote-splice的Clojure宏,但似乎找不到任何清晰的解释说明它们的需要性。有人能用白痴化的术语向我解释吗?
虽然我不是Clojure的专家,但它基本上是一种 Lisp 语言,因此应该像这样使用 unquote-splice 来合并列表到其使用的位置。两者的区别如下:
`(1 2 ~(list 3 4)) => (1 2 (3 4))
`(1 2 ~@(list 3 4)) => (1 2 3 4)
` == syntax-quote
~ == unquote
~@ == unquote-splice
~
(波浪号)而不是传统的,
(逗号)感到惊讶 - 有任何想法为什么要改变吗?) - Iceland_jack