【发布时间】:2012-02-07 03:59:14
【问题描述】:
在 Clojure 中,您可以取消引用拼接一个值列表以生成代码,例如
(def extra-values [1 2 3 4])
`(+ 100 200 ~@extra-values)
=> (clojure.core/+ 100 200 1 2 3 4)
同样的方法应该在未引用的上下文中起作用似乎是合乎逻辑的,例如
(def extra-values [1 2 3 4])
(+ 1000 ~@extra-values)
=> [an error, but one could argue that the answer should be 1010??]
这行不通有什么深刻的技术/哲学原因吗?
【问题讨论】:
-
可能是为了避免将语言的“元”特性与该语言的“正常”特性混合:)