Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Clojure中嵌套的准文本处理规则是什么?_Clojure_Macros_Lisp_Quasiquotes - Fatal编程技术网

Clojure中嵌套的准文本处理规则是什么?

Clojure中嵌套的准文本处理规则是什么?,clojure,macros,lisp,quasiquotes,Clojure,Macros,Lisp,Quasiquotes,Clojure中的嵌套准队列处理规则是什么?我正在写一个Lisp变体,其中的符号是卫生的(autogensymed)。我用auto gensym开发了单级Quasikote,但我不确定什么时候会有两级或两级以上的嵌套 如何处理带有卫生符号且可嵌套的Quasiquettes 扩张的一般规则是什么? 例如: 我可以推荐Allan Bawden的“Lisp中的准旋转”: 我95%确定Clojure使用了相同的规则,但请尝试Clojure中的示例进行检查。您能给我们展示一个示例,说明您正在尝试什么以

Clojure中的嵌套准队列处理规则是什么?我正在写一个Lisp变体,其中的符号是卫生的(autogensymed)。我用auto gensym开发了单级Quasikote,但我不确定什么时候会有两级或两级以上的嵌套

如何处理带有卫生符号且可嵌套的Quasiquettes


扩张的一般规则是什么? 例如:

我可以推荐Allan Bawden的“Lisp中的准旋转”:


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

您能给我们展示一个示例,说明您正在尝试什么以及问题在哪里吗?不确定这在Close中是如何工作的,但在scheme和我的lisp中,我只使用语法(let((name(gensym))'(list'(list,name)))(注释不允许转义backquote,所以这里有引号)检查这个问题,您的示例与您的问题之间的关系并不十分清楚。它们都很简单地解析为
a
,并且根本不涉及gensym。
(quasiquote (quasiquote (unquote (quasiquote (unquote (unquote-splice x))))))
(quasiquote (quasiquote (unquote (quasiquote (unquote (unquote x))))))
(def a '(1 2))

``~`~~a