这是一篇Scheme编程语言的介绍。本文的目标是成为一篇快速上手教程。从未接触过Scheme的新手可以在学习更复杂更深入的知识以前通过本文获得一些简明扼要的关于Scheme语言的可实际操作的知识。
本文描述了一种干净利落但实用有效的编写Scheme程序的方法。虽然我们不会按照索引把从A到Z开头的所有函数都介绍一遍,但是我们也不会回避Scheme一些难理解的、凌乱的、非标准、不常用但是却可用或很有用的内容。包括call-with-current-continuation,系统接口和方言的多样性。我们的讨论将围绕我们将解决的问题展开,而不是为了让读者对元语言有什么领悟,因此我并没有按照传统的Scheme教程的思路来撰写本文。本文没有深入的教学方法,没有讲解Scheme语义,没有元循环解释器,也没有讨论Scheme底层的实现,也没有论述Scheme的优点。这并不是说这些东西是不重要的,而是说它们与某些人正在寻找的“快速教程(我是说本文)”无关。
能有多快呢?我不知道一个人是否能在21天学会Scheme1,虽然我听有人说精通Scheme的基本内容应该一个下午就够了。Scheme语言的标准——所有精准和复杂的定义都包括进去——只有五十页长。这可能是因为真正对Scheme的大彻大悟(当它到来时),只需一个下午,尽管在那之前不知要花费多少个下午。这就是我的简单介绍。
感谢Matthias Felleisen把Scheme和高阶编程介绍给我,以及Matthew Flatt创造了可靠和优雅的MzScheme实现(本书使用的Scheme即是MzScheme)
1一个Fixnum是一台机器认为“很小”的一个整数,每个机器对Fixnum都可以有自己的看法