排序:
默认
按更新时间
按访问量

SICP 习题 (2.31)解题总结 : 通用的Square-Tree

SICP  习题 2.31 秉承该书一直以来的抽象作风,要求读者对习题2.30的结果进行抽象,使square-tree这种形式的过程更加通用。习题2.30中的square-tree只能对树状列表求平方,不能执行其他操作,但是我们可以发现其实使用map遍历树状列表的操作是通用的,只要我们将squar...

2016-07-16 21:50:34

阅读数:1190

评论数:0

SICP 习题 (2.30)解题总结 : Square-Tree

SICP 习题 2.30 要求我们完成一个叫square-tree的过程,其作用和之前的square过程差不多,square过程是针对简单列表的,将列表中的所有元素求平方,然后返回新的平方数列表。不过square不能对嵌套列表进行处理,如果列表中还包含列表的话会报错。题目要求我们实现一个squar...

2015-09-27 14:32:05

阅读数:1665

评论数:1

SICP 习题 (2.29) 解题总结:二叉活动体

SICP 习题 2.29题目很长,实现起来有点繁琐,不过题目不难,花点时间还是容易完成的。题目引入了一个概念叫二叉活动体,这种东西有一个左分支,有一个右分支,每个分支包括一个长度和一个悬挂物,悬挂物可以是一个数,也可以是另一个二叉活动体。题中给出了二叉活动体的实现代码:(define (make-...

2015-09-27 14:31:36

阅读数:1564

评论数:1

SICP 习题 (2.28)解题总结:树状列表的遍历

SICP  习题 2.28 的本质其实是树的遍历题目要求我们实现一个叫fringe的过程,fringe的英文意思是边缘,花边的意思,题目的意思其实就是要我们遍历一棵树,然后以列表的形式返回这棵树的所有叶子。该过程的实现和上面的deep-reverse差不多,都是遍历元素,如果元素是一个列表则递归调...

2015-09-27 14:30:34

阅读数:1576

评论数:1

SICP 习题 (2.27)解题总结:树状列表的遍历

SICP 习题 2.27 又开始有些难度了,题目要求我们实现reverse的升级版deep-reverse,就是不仅要将一个列表的元素顺序倒过来,还要将列表中所有子列表的元素也倒过来。想清楚思路以后也不算太难,其实就是在对所有元素进行倒转的过程中加多一个判断,如果正在处理的元素是一个列表,则对该列...

2015-09-27 14:29:33

阅读数:1437

评论数:1

SICP 习题 (2.26)解题总结:列表操作符append cons list

SICP  习题 2.26 也是不需要太多解释的题目, 题目的主要目的是让读者理解append cons list三个操作的差别。直接运行下面代码中的start-test-2-26过程就可以了,需要留意一下的是append 过程, cons过程和list过程的使用。最好翻一下mit-schme的参...

2015-03-02 23:29:01

阅读数:1993

评论数:5

SICP 习题 (2.25)解题总结:列表的操作

SICP 习题 2.25 简单到不用解释题目要求我们使用car和cdr操作获得以下列表中的7:'(1 3 (5 7) 9) '((7)) '(1 (2 (3 (4 (5 (6 7))))))各位同学搞清楚car和cdr就可以简单完成了,代码如下:(define (start-test-2-25) ...

2015-03-02 23:27:51

阅读数:1449

评论数:0

Mac 上安装 Docker后启动boot2docker失败的问题

在Mac上安装Docker后,需要启动boot2docker加载VM后才能使用docker命令,不过我安装boot2docker后启动boot2docker出现一下错误:Waiting for VM and Docker daemon to start... ......................

2015-03-02 14:16:00

阅读数:4472

评论数:0

SICP 习题 (2.24)解题总结:列表的结构

SICP 习题 2.24 是列表的巩固题,让我们更清晰的理解列表。题目要求我们求如下表达式的值:(list 1 (list 2 (list 3 4)))因为我是一个程序员,这种事我不会自己求值的,我会让计算机完成。。。。在Scheme环境里运行以上表达式得到的结果是:(1 (2 (3 4)))这个...

2015-01-19 00:19:00

阅读数:2136

评论数:0

SICP 习题 (2.23)解题总结:for-each的实现

SICP 习题 2.23 要求我们实现一个for-each过程。for-each过程和map过程其实很像,只不过for-each过程不返回值,如果返回一个值的话也是不包含意义的值。map比较像一个加工厂,进去一堆东西,加工一下,出来另一堆东西。for-each更像一个蒸汽机,进去一堆煤,燃烧一下,...

2015-01-16 00:31:35

阅读数:1823

评论数:0

SICP 习题 (2.22)解题总结: 迭代过程中的列表处理

SICP 习题 2.22是习题2.21的后续题目,题目中讲到叫Louis Reasoner的人想重写suqare-list过程,希望使用迭代计算过程,而不是递归计算过程,有关迭代计算过程和递归计算过程,如果你没什么印象了,请翻回习题1.9 的解题总结看看。那个叫Louis Reasoner的人写的...

2015-01-12 00:07:50

阅读数:2386

评论数:0

SICP 习题 (2.21)解题总结: map的使用

SICP 习题 2.21 开始引入了map,准确来讲,是这道题目前的文章内容开始引入了map。为了完成本习题,甚至说为了完成本文以后的阅读,请读者一定要理解清楚map的概念,正如书中所说,“map是一种很重要的结构,不仅因为它代表了一种公共模式,而且因为它建立起了一种处理表的高层抽象”。虽然说得非...

2015-01-10 20:44:01

阅读数:1667

评论数:0

SICP 习题 (2.20)解题总结: 不确定数量参数

SICP 习题 2.20 引入了一种新的函数调用方式,就是带 . 符号的不确定参数调用方式。题中也讲到了, Scheme支持这种调用方式,如果我们把方法定义成下面这个样子(define (my-method first-p . others-p) ;….. ) 我们就可以在调用方法my-m...

2015-01-08 23:30:42

阅读数:1584

评论数:0

SICP 习题 (2.19) 解题总结:重写零钱兑换程序

SICP 习题2.19 要求我们重新设计1.2.2节的零钱兑换程序,要求我们可以轻易改变程序里用的兑换币种。我们先看看1.2.2节的零钱兑换程序,代码是这样的:(define (RMB-Change amount) (format #t "Changing ~S~%" am...

2015-01-07 00:14:14

阅读数:2245

评论数:0

SICP 习题 (2.18) 解题总结:反转列表

SICP 习题 2.18 要求我们定义一个过程名叫reverse,可以将一个list反转过来。比如 (reverse (list 1 4 9 16 25)) 的结果是:(25 16 9 4 1)这道题和之前的2.17有相似之处,都是对list进行遍历,然后做相应处理。不过2.17比较简单,遍历到最...

2014-12-25 00:13:10

阅读数:2599

评论数:1

SICP 习题 (2.17)解题总结:列表的遍历

SICP 习题 2.17 要求我们定义出过程last-pair,它返回只包含给定表里之后一个元素的表。比如 (last-pair (list 23 72 149 34))的结果应该是(34)当你开始做这道题的时候你应该已经看完书中有关list操作的内容了,你应该明白car和cdr分别是什么意思,也...

2014-12-25 00:12:01

阅读数:1917

评论数:2

SICP 习题 (2.16)解题总结:避免误差的区间计算系统

SICP 习题 2.16 问我们能不能设计一个没有问题的区间计算系统,可以避免习题2.14中的问题。题目还吓我们说这可能很难。这一下就把我吓住了,你不是说很难吗,那就很难吧,我不会。呵呵

2014-12-24 22:05:54

阅读数:1984

评论数:2

SICP 习题 (2.15)解题总结:区间误差的深入思考

SICP 习题 2.15 是接着 题目 2.14 的, 题目 2.14中提到了Alyssa设计的区间计算模块在并联电阻计算时会出现问题,这个问题是Lem发现的。接着,一个叫Eva的人也发现了这个问题,同时她还有更深入的思考。Eva觉得,如果一个公式可以写成一种形式,其中具有非准确性的变量不重复出现...

2014-12-23 22:23:36

阅读数:1863

评论数:0

SICP 习题 (2.14)解题总结:区间误差导致的问题

SICP 习题 2.14 的题目要求并没有完全体现在题干中,这道题是和书中前面的内容相关的。书中讲到,Alyssa做完了我们以前讨论的区间计算模块并发布出去了,然而,一段时间以后她接受到了来自一个叫做Lem的工程师的抱怨,这个叫做Lem的人应该是搞电路的,他用Alyssa的程序去计算两个电阻的并联...

2014-12-16 16:33:43

阅读数:10864

评论数:0

SICP 习题 (2.13)解题总结:区间计算误差

SICP 习题 2.13 又像是一道数学证明题,和编程关系不大,不过这不能阻挡我们去完成它。题目要求我们证明,当误差百分比很小的时候,可以使用一个简单的公式,根据被乘区间的误差去计算乘积的误差。同时,为了简化问题,题目允许我们只计算所有数为正的情况,因为涉及到负数时,乘积的正负变化比较多样,不容易...

2014-11-23 15:39:42

阅读数:32914

评论数:1

提示
确定要删除当前文章?
取消 删除
关闭
关闭