10

我已经阅读了JRM 的 Syntax-rules Primer for the Merely Eccentric,它帮助我理解了语法规则以及它与 common-lisp 的定义宏有何不同。语法规则只是在定义语法中实现语法转换器的一种方式。

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

4

4 回答 4

7

回答你的第二个问题:syntax-case是另一种形式进入define-syntax. Kent Dybvig 是 的主要支持者syntax-case他有一个使用它的教程 [PDF]。

我还阅读了 PLT Scheme 文档syntax-case获取更多示例,并了解实施中的变化。

于 2008-09-25T13:34:28.060 回答
6

JRM 语法规则入门非常好,但编程语言的第 36 章:应用程序和解释,由 Shriram Krishnamurti http://www.cs.brown.edu/~sk/Publications/Books/ProgLangs/)也有很好的覆盖编写 Scheme 宏。在过去的 10 年中,该材料已在几篇短文、技术报告等中得到使用和改进,因此这不是一篇“关于 1983 年 Scheme 的 X 实现的事实,不再可访问”的论文。

于 2008-11-04T12:38:51.893 回答
4

The Scheme Cookbook中的资源列表是一个很好的起点。如果您喜欢论文,请不要犹豫,访问readscheme.org

于 2008-09-29T19:02:48.693 回答
2

Fear of Macros是在 Racket 中使用宏的实用指南。它显示了许多使用define-syntax. 该材料可能并不完全适用于 Scheme,但您可能会发现一些示例有助于了解可以做什么。

于 2019-03-03T14:42:42.377 回答