SICP读书笔记 3.1】的更多相关文章

scheme解释器有两种实现方式,一种是应用序,先对每个参数求值,再以首过程对所有求得的参数求值. 第二种是正则序,会“完全展开然后归约”(书中原文) SICP中的练习1.5,让我困惑了一下.原题如下: Ben Bitdiddle发明了一种检测方法,能够确定解释器究竟采用何种序求值,是采用应用序,还是采用正则序.他定义了下面两个过程: (define (p) (p)) (define (test x y) () y)) 而后他求值下面的表达式: (test 0 (p)) 问题:不同的求值序,结果…
SICP CONCLUSION 让我们举起杯,祝福那些将他们的思想镶嵌在重重括号之间的Lisp程序员 ! 祝我能够突破层层代码,找到住在里计算机的神灵! 目录 1. 构造过程抽象 2. 构造数据抽象 3. 模块化.对象和状态 4. 元语言抽象 5. 寄存器机器里的计算 Chapter 1 构造过程对象 练习答案 程序设计的基本元素 强有力的程序设计语言,不仅是一种指挥计算机执行任务的方式,还应该提供一种框架,使我们能够自己有关计算过程的思想 基本表达形式 (过程 or 数据?) 组合的方法 抽象…
SICP CONCLUSION 让我们举起杯,祝福那些将他们的思想镶嵌在重重括号之间的Lisp程序员 ! 祝我能够突破层层代码,找到住在里计算机的神灵! 目录 1. 构造过程抽象 2. 构造数据抽象 3. 模块化.对象和状态 4. 元语言抽象 5. 寄存器机器里的计算 Chapter 3 模块化.对象和状态 练习答案 流 之前我们引入了用局部状态的计算对象来模拟现实世界里具有局部状态的计算对象,而这其中的复杂性来自被模拟对象随着事件变化的在计算机里是通过赋值实现的.那是否存在其他办法避免计算机里…
SICP CONCLUSION 让我们举起杯,祝福那些将他们的思想镶嵌在重重括号之间的Lisp程序员 ! 祝我能够突破层层代码,找到住在里计算机的神灵! 目录 1. 构造过程抽象 2. 构造数据抽象 3. 模块化.对象和状态 4. 元语言抽象 5. 寄存器机器里的计算 Chapter 3 模块化.对象和状态 练习答案 并发:时间是一个本质问题 在引入赋值后,迫使我们需要关心事件发生的顺序,从而引发了并发的问题 限制并行进程之间的交错情况 对共享变量的串行访问 创建一些不同过程的集合,并且保证在每…
SICP CONCLUSION 让我们举起杯,祝福那些将他们的思想镶嵌在重重括号之间的Lisp程序员 ! 祝我能够突破层层代码,找到住在里计算机的神灵! 目录 1. 构造过程抽象 2. 构造数据抽象 3. 模块化.对象和状态 4. 元语言抽象 5. 寄存器机器里的计算 Chapter 3 模块化.对象和状态 练习答案 求值的环境模型 一个环境就是框架的一个序列,每个框架都包含着一些约束的表格,这些约束将一些变量名字关联于对应的值(在一个框架里,任何变量至多只能有一个约束.每个框架还包含一个指向这…
SICP CONCLUSION 让我们举起杯,祝福那些将他们的思想镶嵌在重重括号之间的Lisp程序员 ! 祝我能够突破层层代码,找到住在里计算机的神灵! 目录 1. 构造过程抽象 2. 构造数据抽象 3. 模块化.对象和状态 4. 元语言抽象 5. 寄存器机器里的计算 Chapter 3 模块化.对象和状态 练习答案 用变动数据做模拟 当引入赋值后就可以在之前为那些复合数据对象提出改变函数 变动的表结构 针对cons的基本改变函数,set-car!和set-cdr!函数 共享和相等 ;: (de…
SICP CONCLUSION 让我们举起杯,祝福那些将他们的思想镶嵌在重重括号之间的Lisp程序员 ! 祝我能够突破层层代码,找到住在里计算机的神灵! 目录 1. 构造过程抽象 2. 构造数据抽象 3. 模块化.对象和状态 4. 元语言抽象 5. 寄存器机器里的计算 Chapter 3 模块化.对象和状态 练习答案 从前两章中我们认识到,在克服系统复杂性问题时,构造过程抽象和数据抽象祈祷了非常关键的作用.但是在进行组织模块化后,我们还需要一些组织原则来完成系统的整体设计,使这些系统自然地划分为…
SICP CONCLUSION 让我们举起杯,祝福那些将他们的思想镶嵌在重重括号之间的Lisp程序员 ! 祝我能够突破层层代码,找到住在里计算机的神灵! 目录 1. 构造过程抽象 2. 构造数据抽象 3. 模块化.对象和状态 4. 元语言抽象 5. 寄存器机器里的计算 Chapter 2 构造数据对象 练习答案 带有通用型操作系统 这里讲会实现一个通用型的算术包,大概可以分为几个抽象层 add sub mul div四个操作,支持所有这个算术包里所有支持的数据 有理数算术 复数算术 常规算术 最…
SICP CONCLUSION 让我们举起杯,祝福那些将他们的思想镶嵌在重重括号之间的Lisp程序员 ! 祝我能够突破层层代码,找到住在里计算机的神灵! 目录 1. 构造过程抽象 2. 构造数据抽象 3. 模块化.对象和状态 4. 元语言抽象 5. 寄存器机器里的计算 Chapter 2 构造数据对象 练习答案 抽象数据的多重表示 在这一节里,我们将学习如何去处理数据,是他们可能在一个程序的不同部分中采用不同的表示方式.这就需要我们去构造通用型过程 复数的表示 复数有两种不一样的表示方式,也同样…
SICP CONCLUSION 让我们举起杯,祝福那些将他们的思想镶嵌在重重括号之间的Lisp程序员 ! 祝我能够突破层层代码,找到住在里计算机的神灵! 目录 1. 构造过程抽象 2. 构造数据抽象 3. 模块化.对象和状态 4. 元语言抽象 5. 寄存器机器里的计算 Chapter 2 构造数据对象 练习答案 符号数据 这里其实只是引出了符号的表示,重点应该在实例中 实例:符号求导 列出有关求导的基本算法 按愿望思维,先提取出其中有关的基本过程和数据抽象,然后根据算法构造 (vairable?…