分类: LINUX
2012-05-18 16:01:11
对于理解 Haskell 这门语言而言,《》这本书的前十八章已经足够,而且也包含了大量的应用范例,但是对于没有函数编程经验的读者,要想一路畅通无阻的读完这些章节,并非易事。这里,我想共享一下我的阅读体会。
前三章需要顺次阅读,介绍了 Haskell 的一些基本概念,例如基本的数据类型、函数应用什么的,基本没有什么难度。
第 4 章是主要是介绍 Haskell 如何通过尾递归模拟命令式语言中的循环结构的。这一章比较练习大脑,可以多读两遍。
第 5 章通过一个 JSON 数据的 Haskell 表示与屏幕打印示例程序对前四章内容的进行了比较全面的总结,所以在阅读这一章时,需要不断的向回翻书,有些地方由于涉及到 JSON 数据的解析细节,即便读不懂,也没有关系,只需了解其大意即可。这一章另外的一个主题就是介绍了 Haskell 模块的编写、编译与安装方式,如果对这些知识暂时不感兴趣可跳过。
第 6 章介绍了类型类,它与前五章基本没有交集,它与后面的第 7—9 章也没有什么交集,但是它与第 10 章有很大的交集。从这一点来看,《》的作者在章节的布置上实在是欠考虑,也许会在第二版有所改善。建议:在读完第 5 章时,可直接阅读第 7—9 章,在读第 10 章之前再看第 6 章。
第 7 章介绍了 Haskell 的 I/O 机制,第 8 章介绍了效率更高的 I/O 机制,后者是第 10 章的基础。
第 9 章,我直接跳了过去。这一章主要是通过实现一个类似 Unix 系统中的 find 命令的程序来讲述第 7 章 I/O 机制的应用。
第 10 章在整本书中的地位非常重要,理解的越透彻越好。它不仅是对前九章的内容起到一个全面的回顾,而且也为理解第 14 章的内容奠定了基础。
第 11、12、13 章,我暂时跳了过去。因为它们与第十章没有交集,如果读完它们再去读第 14 章的时候,第十章的内容便遗忘殆尽了。
第 14 章讲述了单子(Monad)的概念。写这篇文章的时候我正在读这一章,所有后面的 15—18 章,我是按照内容大致的拟定了阅读路线,即:在读完第 14 章之后,再粗读一下第 13 章中的『Association Lists』一节,然后就可以读第 15 章。读完第 15 章后,可以跳过第 16、17 章,阅读第 18 章。
转载时,希望不要链接文中图片,另外请保留本文原始出处: