这本书是至今为止我读过最难啃的书,进度非常缓慢。前面几页反反复复读了好几遍才发现有了能够继续进行的状态。每天读一点,大概速度是10页/每小时的样子。
作为麻省理工学院计算机科学的入门教材。这本书从本质入手,讲解了计算机程序的本质,如何去看待,组织,理解及构建一个庞大的程序。通过校正我们的计算机程序观,来帮助我们去观察,思考和理解。通篇使用lisp作为讲解代码。很容易沉浸于思考,而不是拘泥于语法和工具,从而可以经过大量的思考,只需一点点代码,就可以搞定所有事情。不同于《unix编程思想》,这本书具有很强的现实意义,对于架构设计的能力,甚至新语言的学习都会有帮助意义。
第一章 构造过程抽象
心智的活动主要表现在三个方面:
- 将若干简单认识组合为一个复合认识,由此产生出各种复杂的认识。
- 将两个认识放在一起对照,不管他们如何简单或者复杂,在这样做时并不将它们合而为一。由此得到有关他们的相关关系的认识。
- 将有关认识与那些在实际中和他们所在的所有其它认识隔离开,这就是抽象。
所有具有普遍性的认识都是这样得到的。
程序设计的基本元素:
- 基本表达形式。用于表示语言所关心的最简单的个体。
- 组合的方法。通过它们可以从较简单的东西出发构造出复合的元素。
- 抽象的方法。通过它们可以为复合对象命名,并将它们当做单元去操作。
在构造更复杂的过程时可以将一个过程用作其中的元素,这样的过程不但可以看做是一组特定操作,还可以看做一个过程抽象。也就是说,有关过程的实现细节可以被隐藏起来,这个特定过程完全可以有另一个具有同样整体行为的过程取代。换句话说,我们可以这样造成一个抽象,它将这一过程的使用方式,与该过程究竟如何通过更基本的过程实现的具体细节相互分离。
用lambda构造过程是把过程抽象的一种方式,可用于把过程作为参数和返回值。
Read full article from 《计算机程序的构造和解释》读书笔记(一) - 又挖沙的博客
No comments:
Post a Comment