近期更换了学习 lisp 的教材,进度可喜可贺,虽不能独立写出 package,然而在看 lisp 的代码时,开始具备一定的阅读能力,知道是什么顺序,大概会是什么作用。如果不知道,还可以直接查询函数。
近期的学习教材主要是《Practical Common Lisp》,我认为它的安排很好,一上来先教人安装了 lisp 的生产环境之后,就直接以一个「专辑数据库」为例子,让人直接上手,并从一步步的步骤中,理解自己所编写的代码,如何变成程序。对于一名非程序员来说,这种方式,可以很快地通过实操来理解代码的作用,找到感觉。
这和学习《 ANSI Common Lisp 中文版》的感受大不一样。ANSI Common Lisp,非常完整,十分细致,甚至有后面的练习题,来帮助人深入思考。但它太学术了,在学习过程中,总是不知道学了之后,用这些语法或函数能发挥什么作用。
所以我现在是《Practical Common Lisp》和 《 ANSI Common Lisp 中文版》一起结合来看。首先阅读前者,通过前者举的例子,来理解逻辑;而函数实际应用的细节,则查询后者——在逻辑理解了的情况下,阅读后者,往往很快就能理解,而且能够有一定的发散。这样子学,记得牢,学得快。