SICP 习题 (2.7) 解题总结 : 定义区间数据结构
2014-10-08 00:46
393 查看
SICP 习题 2.7 开始属于扩展练习,可以考虑不做,对后面的学习没什么影响。不过,如果上面的使用过程表示序对,还有丘奇计数你都可以理解的话,完成这些扩展练习其实没什么问题。
习题2.7是要求我们协助Allysa完成interval的定义。
Allysa定义了下面的过程来创建一个区间(interval),其中a是起点(就是较小的部分),而b是终点(就是较大部分)。
题目要求我们实现lower-bound过程和upper-bound过程,用于获取一个区间的起点和终点。
既然起点和终点是使用cons函数连接在一起的,获取起点和终点的函数就很简单啦,通过car和cdr获取就行了:
值得注意的是,像这样简单的构建复合数据的方式在本书后面的章节中不断出现,变成了一个常规的数据组织手段,所以大家还是可以多留意一下这一系列扩展练习,加强对复合数据的理解。
习题2.7是要求我们协助Allysa完成interval的定义。
Allysa定义了下面的过程来创建一个区间(interval),其中a是起点(就是较小的部分),而b是终点(就是较大部分)。
(define (make-interval a b) (cons a b))
题目要求我们实现lower-bound过程和upper-bound过程,用于获取一个区间的起点和终点。
既然起点和终点是使用cons函数连接在一起的,获取起点和终点的函数就很简单啦,通过car和cdr获取就行了:
(define (lower-bound x) (car x)) (define (upper-bound x) (cdr x))
值得注意的是,像这样简单的构建复合数据的方式在本书后面的章节中不断出现,变成了一个常规的数据组织手段,所以大家还是可以多留意一下这一系列扩展练习,加强对复合数据的理解。
相关文章推荐
- SICP 习题 (2.7) 解题总结 : 定义区间数据结构
- SICP 习题 (2.12)解题总结 :区间的不同实现方式
- SICP 习题 (2.16)解题总结:避免误差的区间计算系统
- SICP 习题 (2.9)解题总结:区间的宽度和区间加减乘除的关系
- SICP 习题 (2.14)解题总结:区间误差导致的问题
- SICP 习题 (2.11)解题总结:区间乘法的优化
- SICP 习题 (2.15)解题总结:区间误差的深入思考
- SICP 习题 (2.11)解题总结:区间乘法的优化
- SICP 习题 (2.8) 解题总结:区间的减法
- SICP 习题 (2.8) 解题总结:区间的减法
- SICP 习题 (2.13)解题总结:区间计算误差
- SICP 习题 (2.10)解题总结: 区间除法中除于零的问题
- SICP 习题 (2.10)解题总结: 区间除法中除于零的问题
- SICP 习题 (1.8) 解题总结
- SICP 习题 (1.15) 解题总结
- SICP 习题 ( 1.17) 解题总结
- SICP 习题 (1.16)解题总结
- SICP 习题 (1.11) 解题总结:加强版斐波那契数
- SICP 习题 (1.21) 解题总结
- SICP 习题 (1.13) 解题总结