SICP 习题 2.7 开始属于扩展练习,可以考虑不做,对后面的学习没什么影响。不过,如果上面的使用过程表示序对,还有丘奇计数你都可以理解的话,完成这些扩展练习其实没什么问题。
习题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 习题答案 计算机程序的构造和解释 1-3章 习题答案
SICP习题解答,主要第一章的内容习题答案
NULL 博文链接:https://pengpeng.iteye.com/blog/1344689
UCB CS61a SICP Python 描述 原文: 译者: 协议: 前面是山,我们就爬山;前面是海,我们就渡海;前面是皇宫,我们就开炮!——《龙族前传》 下载 Docker docker pull apachecn0/sicp-py-zh docker run -tid -p ...
资源名称:sicp 和 操作系统:精髓与设计原理第七版资源截图: 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。
sicp-py-zh:【译】UCB CS61a SICP Python
NUS CS1101s SICP JavaScript 描述原文:协议:如果你交给某人一个程序,你将折磨他一整天;如果你教某人如何编写程序,你将折磨他一辈子。——David Leinweber贡献指南本项目需要校对,欢迎大家提交 Pull Request。...
在SICP上进行试用-> WASM编译演示:SICP如何将机器代码注册为WASM 为阶乘翻译LISP代码(define (factorial n) (define (iter product counter) (if (> counter n) product (iter (* counter product) (+ counter 1)))...
SICP 解题集
sicp 和 操作系统:精髓与设计原理第七版 文档打包。
sicp in python 中文版 sicp in python 中文版 sicp in python 中文版 download : https://github.com/wizardforcel/sicp-py-zh
sicp备忘录 包含 SICP 每个部分的注释和答案。 请参考那些正在学习SICP的人。 笔记 如果你想在 gauch 中使用随机函数 (use math.mt-random) (define m (make <mersenne> :seed (sys-time))) (mt-random-integer m ...
SICP研究组 一个研究计算机程序结构和解释(SICP)的研究小组
最终目标是完全支持SICP指令集,然后使用此编译器将Scheme编译为Z80,或直接将Scheme编写为Z80。 无论哪种方式,该项目对我来说也意味着可以在TI-84(不是最好的语言)上探索Z80装配中的编程。特征显示字符串和数字...
sicp视频中的例子和自己的尝试 环境检查方案9.5
sicp in python 中文版 sicp in python 中文版 sicp in python 中文版 !!!download>>>https://github.com/wizardforcel/sicp-py-zh
SICP 解题集《计算机程序的构造和解释》练习题解集。安装 MIT/GNU Scheme(macOS)下载:下载后运行 .dmg 文件,把 MIT/GNU Scheme.app 拖入 Applications 文件夹在 Applications/应用程序 文件夹中找到 MIT/GNU ...
干燥剂 SCIP,但在Clojure中。 检查./resources文件夹中不同章节的笔记本: 更多示例代码和练习解决方案位于./src文件夹中。
SICP中文第二版SICP中文第二版SICP中文第二版SICP中文第二版SICP中文第二版
计算机程序的结构和解释(SICP也称为向导书)练习 包含在SCIP中找到的示例代码的Racket实现的存储库。