可是学习编程总要从某种语言开始。那么哪种语言呢?就我的观点,首先可以从Scheme 入门,然后学习一些Haskell (但不是全部),之后其它的也就触类旁通了。你并不需要学习它们的所有细枝末节,而只需要学习最精华的部分。所有剩余的细节,会在实际使用中很容易的被填补上。现在我推荐几本比较好的书。
《The Little Schemer》(TLS):我觉得Dan Friedman 的The Little Schemer 是目前最好,最精华的编程入门教材。这本书很薄,很精辟。它的前身叫《The Little Lisper》。很多资深的程序语言专家都是从这本书学会了Lisp。虽然它叫“The Little Schemer”,但它并不使用Scheme 所有的功能,而是忽略了Scheme 的一些毛病,直接进入最关键的主题:递归和它的基本原则。
《Structure and Interpretation of Computer Programs | 计算机程序的构造和解释》(SICP):The Little Schemer 其实是比较难的读物,所以我建议把它作为下一步精通的读物。SICP 比较适合作为第一本教材。但是我需要提醒的是,你最多只需要看完前三章。因为从第四章开始,作者开始实现一个Scheme 解释器,但是作者的实现并不是最好的方式。你可以从别的地方更好的学到这些东西。不过也许你可以看完SICP 第一章之后就可以开始看TLS。
《A Gentle Introduction to Haskell》:对于Haskell,我最开头看的是A Gentle Introduction to Haskell,因为它特别短小。当时我已经会了Scheme,所以不需要再学习基本的函数式语言的东西。我从这个文档学到的只不过是Haskell 对于类型和模式匹配的概念。