一直在断断续续地看SICP,确实字字珠玑,今天总算看了前两章,习题做了一部分,不过日后肯定还是要回头重看的,现在略微回头总结一下。
第1章 构造过程抽象
1 好的编程语言应提供的三种机制:基本表达式+组合+抽象
实际上我们自己也可以为特定问题制定自己的“语言”,是否具有上述能力是这个语言是否强大的关键;2 过程作为黑箱的抽象
只为用户提供需要的东西,隐藏复杂的细节,有利于程序的构建;3 Wishful Thinking 的编程方法
先假设已经具有某种功能,这样就可以在这一层次上构建程序,具体这一功能如何实现,与当前用它无关;4 过程与数据没有明确的区分
高阶函数可以将过程作为返回值,这一应用模糊了过程与数据的分别,使语言具有了更强的抽象能力,函数式语言确实很有意思,有待进一步学习;5 合适的抽象层次
如何建立合适的抽象层次,是个重要的问题;第2章 构造数据抽象
1 实现数据抽象
只要抽象层次能够提供选择函数与构造函数,即可在这个数据抽象层次上进行操作而避开数据的具体实现,这也是不断构造多层次抽象的办法;而实现了数据的多层抽象,就能在修改个别层次的时候不影响整体的使用,因为提供给上层的接口是不变的;