在clojure.core文件的顶部(注释和命名空间声明下面)有两个定义,没有额外的代码或信息:
(def unquote)
(def unquote-splicing)
Run Code Online (Sandbox Code Playgroud)
这些做什么/他们为什么在那里?
它们是虚拟的价值观.读者扩展~x到(unquote x)和~@x到(unquote-splice x).然后在syntax-quote中专门处理这些类型的列表.
它们的声明允许它们在syntax-quote之外使用,例如在你自己的宏中.
由于它们不受任何约束,因此它们在syntax-quote之外的使用或处理它们的宏会引发异常.
| 归档时间: |
|
| 查看次数: |
1228 次 |
| 最近记录: |