从《On Lisp》学习Scheme中的宏

4

我真的很想学习Scheme宏。我浏览了《On Lisp》的内容,其中很多章节都专门讲解了Lisp宏。然而,我不懂通用Lisp语言。我能用它来学习Scheme宏吗?


2
Greg是正确的,Common Lisp的宏与Scheme的宏有太大的不同,无法从On Lisp中学习具体内容。但是,在On Lisp中宏的意图适用于任何具有宏的语言。阅读宏章节以获取想法而不是具体代码仍然可能是值得的。 - Nathan Shively-Sanders
2个回答

10

Scheme宏("卫生宏")与传统的Lisp宏完全不同。一些Scheme实现除了Scheme宏外还提供Lisp宏,但这不是Scheme标准所要求的。

如果您想学习这种类型的宏,请寻找特定于Scheme宏的教学材料。Google显示了许多介绍Scheme宏的页面。


我不了解宏。我不明白的是:Lisp宏在Scheme中完全无法使用,还是Scheme宏只是“更好”? - unj2
Scheme宏大多数情况下更好,更高级,如果你愿意的话。我认为你可以用CL宏构建Scheme宏,但反过来不行。Scheme宏更易于使用,因为它们不会捕获变量。 - Theo Belaire

5

关于Nathan Sanders的回复:

On Lisp绝对值得一读;你可以品尝到一种宏的风格和一些有趣的问题解决方案。此外,你可以更好地理解卫生宏解决的问题。

我还不能发表评论,否则我会在线发表评论。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接