Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.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
Macros 了解Scheme宏的源代码:定义语法和语法规则_Macros_Lisp_Scheme_Syntax Rules_Define Syntax - Fatal编程技术网

Macros 了解Scheme宏的源代码:定义语法和语法规则

Macros 了解Scheme宏的源代码:定义语法和语法规则,macros,lisp,scheme,syntax-rules,define-syntax,Macros,Lisp,Scheme,Syntax Rules,Define Syntax,我已经阅读了这本书,它帮助我理解了语法规则以及它与common lisp的define宏的区别。语法规则只是在define syntax中实现语法转换器的一种方法 我在寻找两件事,第一件是更多的例子和语法规则的解释,第二件是学习使用define语法的其他方法的好资源。你推荐什么资源?回答你的第二个问题:语法大小写是定义语法中的另一种形式。Kent Dybvig是语法案例的主要支持者,以及 我还介绍了语法案例,了解更多示例,并了解实现中的变化。的资源列表是一个很好的起点。 如果你喜欢论文,那就别坐

我已经阅读了这本书,它帮助我理解了语法规则以及它与common lisp的define宏的区别。语法规则只是在define syntax中实现语法转换器的一种方法


我在寻找两件事,第一件是更多的例子和语法规则的解释,第二件是学习使用define语法的其他方法的好资源。你推荐什么资源?

回答你的第二个问题:
语法大小写
定义语法
中的另一种形式。Kent Dybvig是
语法案例
的主要支持者,以及

我还介绍了
语法案例
,了解更多示例,并了解实现中的变化。

的资源列表是一个很好的起点。
如果你喜欢论文,那就别坐着看了。

JRM语法规则入门相当不错,但是Shriram Krishnamurti的《编程语言:应用程序和解释》第36章也很好地介绍了编写Scheme宏。在过去的10年里,这些材料在几篇短文、技术报告等中得到了使用和改进,因此这不是一篇“1983年X计划实施的真实情况,不再可用”的论文。

是在Racket中使用宏的实用指南。它显示了使用
定义语法的多种方法。这些材料可能不完全适用于Scheme,但您可能会发现一些示例对于了解可以做什么很有用