首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >学习方案宏。帮我写一个定义语法规则

学习方案宏。帮我写一个定义语法规则
EN

Stack Overflow用户
提问于 2009-10-01 00:05:50
回答 1查看 464关注 0票数 3

我不熟悉Scheme Macros。如果我只有一个模式,并且我想组合定义语法和语法规则,我该怎么做呢?

代码语言:javascript
复制
(define-syntax for
  (syntax-rules (from to)
    [(for i from x to y step body) ...]
    [(for i from x to y body) ...]))

如果我只有一个for,我如何将语法定义和规则结合起来?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2009-10-01 01:37:05

换句话说,您决定for实际上只需要一种模式,并希望编写如下内容:

代码语言:javascript
复制
(defmacro (for ,i from ,x to ,y step ,body)
  ; code goes here
  )

Scheme中没有任何内置的东西可以使单模式宏的编写速度更快。传统的解决方案是(惊喜!)来编写另一个宏。

我使用了defsubst from Swindle和PLT Scheme now ships with define-syntax-rule,它们做了同样的事情。如果您正在学习宏,那么编写您自己的define-syntax-rule等效项将是一个很好的练习,特别是当您想要某种方式来指示诸如"for“和"from”之类的关键字时。defsubstdefine-syntax-rule都不能处理这些问题。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1501287

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档