我已经阅读了JRM's Syntax-rules Primer的Merely Eccentric,它帮助我理解了语法规则以及它与common-lisp的define-macro的不同之处。 syntax-rules只是在define-syntax中实现语法转换器的一种方法。
我正在寻找两件事,第一件是语法规则的更多示例和解释,第二件是学习使用define-syntax的其他方法的好资源。你推荐什么资源?
答案 0 :(得分:6)
要回答您的第二个问题:syntax-case
是define-syntax
内的另一种形式。 Kent Dybvig是syntax-case
和he has a tutorial on using it [PDF].
我还在syntax-case
上read 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,但是您可能会发现一些示例对了解可以做什么有用。