了解Scheme宏的来源:define-syntax和syntax-rules

时间:2008-09-25 04:07:21

标签: macros lisp scheme syntax-rules define-syntax

我已经阅读了JRM's Syntax-rules Primer的Merely Eccentric,它帮助我理解了语法规则以及它与common-lisp的define-macro的不同之处。 syntax-rules只是在define-syntax中实现语法转换器的一种方法。

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

4 个答案:

答案 0 :(得分:6)

要回答您的第二个问题:syntax-casedefine-syntax内的另一种形式。 Kent Dybvig是syntax-casehe has a tutorial on using it [PDF].

的主要支持者

我还在syntax-caseread the PLT Scheme documentation了解更多示例,并了解实施中的变化。

答案 1 :(得分:6)

JRM语法规则入门非常好,但是编程语言:应用和解释的第36章,作者Shriram Krishnamurti http://www.cs.brown.edu/~sk/Publications/Books/ProgLangs/)也很好地编写了Scheme宏。在过去的10年里,这些材料已经在几篇短篇文章,技术报告等中得到了使用和改进,所以它并不是“1983年不再可以获得的Scheme的X实现”的真实情况。

答案 2 :(得分:4)

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

答案 3 :(得分:0)

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