SICP 第一章笔记

建议大家看原书,我看原书都觉得很累,每句话都要去琢磨。

现代程序语言提供三种机制:1,基本表达形式:构造简单元素 2,组合的方法:通过简单的元素构造复合元素  3,抽象的方法:抽象复合对象,(对复合对象命名)

简单元素就是  数据以及操作数据的过程,任何程序语言还必须提供对数据和过程的组合和抽象

 

Lisp中键入表达式,解释器就会计算表达式的值

用表示基本过程的表达式(+,×)和表示数的表达式组合起来形成复合表达式。表示需要将  有关的过程应用于数

(+ 2.7  10)

这叫做组合式,就是括号括起若干表达式,表示一个过程应用。最左边的是运算符,其他的是运算对象。

 

程序设计语言需要提供通过名字去使用计算对象的方式,将变量和值进行关联。

define是最简单的抽象方法,可以用一个名字去引用一个组合运算的结果。将值与符号关联后需要将来取出,这种存储被称为环境。

 

组合式求值:1,求值该表达式的所有子表达式 2,将最左子表达式的值(即表示过程的运算符),应用到其他子表达式

第一条描述递归,反复利用可以可以到达求值中的某一点,处理基本表达式的方式:

数的值就是它们所表示的数值

运算符的值就是机器指令序列

其他名字的值就是所关联的对象

小小总结一下:组合式是带括号的,是一种特殊的表达式,它将表达式括起来形成一个表,用来表示一个过程应用。组合式求值就是先求出各个子表达式的值,然后把代表运算的表达式的值应用到其他表达式上,比如(+ 1  2)就是先分别求出+,1,2的值,然后把+对应的机器码应用到1和2上。哭好累,看了半天才看懂。

(define  x  3) 不会被求值,它不是一个组合式,因为它是特殊形式,每个特殊形式都有其自身的求值规则。

 

复合过程,一种更强大的抽象技术,它可以为复合操作提供名字。而不仅仅是之前的为名字绑定一个对象。

(define  square  (x)  (*  x  x))

 

 

 

 

 

       

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值