2

Clojure 中的嵌套准引用处理规则是什么?我正在编写一个 Lisp 变体,其中符号是卫生的(自动生成符号)。我得到了使用 auto gensym 的单级准引用,但我不确定何时进入两级或更多级嵌套。

如何处理带有可嵌套卫生符号的准引号?


扩展的一般规则是什么?例子:

(quasiquote (quasiquote (unquote (quasiquote (unquote (unquote-splice x))))))
(quasiquote (quasiquote (unquote (quasiquote (unquote (unquote x))))))
(def a '(1 2))

``~`~~a
4

1 回答 1

1

我可以推荐 Allan Bawden 的“Lisp 中的准引用”:

https://3e8.org/pub/scheme/doc/Quasiquotation%20in%20Lisp%20(Bawden).pdf

我 95% 确定 Clojure 使用相同的规则,但请尝试 Clojure 中的示例进行检查。

于 2019-05-15T12:51:03.970 回答