用 48 小时写一个 Scheme 语言/概述
外观
大多数网上关于 Haskell 的教程采用类似语言参考手册的教学方式。它们向你展示语言的语法,一些语言结构,然后让你在交互式提示符下创建一些简单的函数。如何编写功能齐全、有用的程序的“难点”留到最后,或者干脆省略了。
本教程采用不同的方法。你将从使用和解析命令行开始,然后逐步编写一个功能齐全的 Scheme 解释器,它实现了 R5RS Scheme 的一个相当完整的子集。在此过程中,你将学习 Haskell 的 I/O、可变状态、动态类型、错误处理和解析特性。当你完成本教程时,你应该能够相当熟练地使用 Haskell 和 Scheme。
本教程针对两类主要受众
第二组可能会发现本教程很有挑战性,因为本教程为了专注于 Haskell,省略了 Scheme 和通用编程中的若干概念。一本好的教科书,比如 计算机程序的结构和解释 或 小 Scheme 语言 应该非常有用。
使用过过程式或面向对象语言的人,如 C、Java 或 Python,请注意:你必须忘记你已经了解的大多数关于编程的知识。Haskell 完全不同于这些语言,需要一种不同的编程思维方式。最好以一张白纸进入本教程;尽量不要将 Haskell 与命令式语言进行比较,因为许多概念(包括类、函数和 return
)在 Haskell 中具有截然不同的含义。
由于每节课都建立在之前课程中编写的代码基础上,因此通常最好按照顺序学习。
本教程假设你将使用 GHC 作为你的 Haskell 编译器。该代码可能适用于 Hugs 或其他编译器,但尚未正式测试,可能需要下载额外的库。
本教程中使用的源代码文件的一个先前版本(未经维基编辑)可在 原始网站 上找到。