跳至内容

用 48 小时写一个 Scheme 语言/概述

来自维基教科书,为开放世界提供开放书籍

大多数网上关于 Haskell 的教程采用类似语言参考手册的教学方式。它们向你展示语言的语法,一些语言结构,然后让你在交互式提示符下创建一些简单的函数。如何编写功能齐全、有用的程序的“难点”留到最后,或者干脆省略了。

本教程采用不同的方法。你将从使用和解析命令行开始,然后逐步编写一个功能齐全的 Scheme 解释器,它实现了 R5RS Scheme 的一个相当完整的子集。在此过程中,你将学习 Haskell 的 I/O、可变状态、动态类型、错误处理和解析特性。当你完成本教程时,你应该能够相当熟练地使用 Haskell 和 Scheme。

本教程针对两类主要受众

  • 已经了解 LispScheme 的人,想要学习 Haskell
  • 不了解任何编程语言,但拥有扎实的定量背景,并熟悉计算机的人

第二组可能会发现本教程很有挑战性,因为本教程为了专注于 Haskell,省略了 Scheme 和通用编程中的若干概念。一本好的教科书,比如 计算机程序的结构和解释小 Scheme 语言 应该非常有用。

使用过过程式或面向对象语言的人,如 CJavaPython,请注意:你必须忘记你已经了解的大多数关于编程的知识。Haskell 完全不同于这些语言,需要一种不同的编程思维方式。最好以一张白纸进入本教程;尽量不要将 Haskell 与命令式语言进行比较,因为许多概念(包括类、函数和 return)在 Haskell 中具有截然不同的含义。

由于每节课都建立在之前课程中编写的代码基础上,因此通常最好按照顺序学习。

本教程假设你将使用 GHC 作为你的 Haskell 编译器。该代码可能适用于 Hugs 或其他编译器,但尚未正式测试,可能需要下载额外的库。

本教程中使用的源代码文件的一个先前版本(未经维基编辑)可在 原始网站 上找到。

华夏公益教科书