文档章节

SICP 2.30 2.31 2.32

 代码强国
发布于 2016/08/07 14:54
字数 255
阅读 32
收藏 0

2.30

(define (square-tree tree)
  (cond ((null? tree) '())
        ((pair? tree) (cons (square-tree (car tree))
                            (square-tree (cdr tree))))
        (else (* tree tree))))

(define (map-square-tree tree)
  (map (lambda (sub-tree)
         (if (pair? sub-tree)
             (map-square-tree sub-tree)
             (* sub-tree sub-tree)))
       tree))

2.31

(define (tree-map f tree)
  (map (lambda (sub-tree)
         (if (pair? sub-tree)
             (tree-map f sub-tree)
             (f sub-tree)))
       tree))

2.32

这道题的解题方法步骤是猜想、验证、解释。

猜想:以(subsets (list 3))代入,得出两个答案

(lambda (x) (append s x))
(lambda (x) (cons (car s) x))

验证:以(subset (list 1 2 3))代入进行验证,得出猜想的第二个答案是正确的

解释:得出正确答案后,以自然语言的方式解释subsets的执行过程。subsets的执行过程是:

1.生成空集

2.将第一个元素加入到由1生成的空集中

3.将1、2作为两个元素生成一个集合

4.将新元素加入上一步生成的集合的所有子集中生成新的子集,并与加入之前的子集生成新的一个集合

5.重复4直到所有的元素都已加入。

© 著作权归作者所有

共有 人打赏支持
上一篇: SICP 2.33 2.34 2.35
下一篇: SICP 2.27 2.28 2.29
粉丝 1
博文 47
码字总数 9762
作品 0
深圳
私信 提问
大数据之 Linux:CentOS的安装

先分享一个学习平台,里面有大量的学习资料 欢迎订阅微信公众号:CoXie带你学编程 centos6.8 链接:https://pan.baidu.com/s/1TjCYXzijMzfpiZ9Z-D1Qhg 密码:7mvn 2.1 新建虚拟机 2.2 选中稍...

柯西带你学编程
05/24
0
0
Linux(二)CentOS的安装

centos6.8 链接:https://pan.baidu.com/s/1TjCYXzijMzfpiZ9Z-D1Qhg 密码:7mvn 2.1 新建虚拟机 2.2 选中稍后安装操作系统(先把虚拟机建好先) 2.3 设置此虚拟机安装哪种操作系统 2.4 设置虚...

leeqico
04/13
0
0
AppleWatch开发教程之Watch应用对象新增内容介绍以及编写运行代码

AppleWatch开发教程之Watch应用对象新增内容介绍以及编写运行代码 添加Watch应用对象时新增内容介绍 Watch应用对象添加到创建的项目中后,会包含两个部分:Watch App 和 WatchKit Extension...

大学霸
2015/05/06
0
1
iOS Sprite Kit教程之滚动场景

iOS Sprite Kit教程之滚动场景 滚动场景 在很多的游戏中,场景都不是静止的,而是滚动的,如在植物大战僵尸的游戏中,它的场景如图2.26所示。 图2.26 植物大战僵尸 在图2.26中,用黑色框框住...

大学霸
2015/07/28
0
0
Xamarin iOS文本框视图

Xamarin iOS文本框视图 与标签视图不同,文本框视图(一般使用UITextField类实现)可以接收用户的文本输入,并进行显示。 【示例2-16】以下将使用文本框来实现QQ登录界面的效果。具体步骤如下...

大学霸
2015/06/17
0
0

没有更多内容

加载失败,请刷新页面

加载更多

eslint rules 规则

'rules': { "comma-dangle": ["error", "never"], //是否允许对象中出现结尾逗号 "no-cond-assign": 2, //条件语句的条件中不允许出现赋值运算符 "no-console": 2, //不允许出现console语句 ...

agenyun
37分钟前
1
0
类型判断时instanceof和equals的不同用法

接口设计时为了避免序列化的麻烦,将接口定义为参数为map<String,String>类型的接口,但是现在调用时需要转换当前的实体Bean为Map,接口接收方再把Map转换为另一个Bean实体。过程中的需要对类...

wangtx
43分钟前
2
0
vue 组件间传值(个人精编)

1.父组件向子组件传值 1⃣️.子组件标签绑定需要传递的参数名2⃣️.子组件页面使用props 接收参数 2.子组件向父组件传值  1⃣️.子组件使用$emit来触发一个自定义事件,并传递一个参...

MrBoyce
54分钟前
1
0
(荷兰)彼得·冯·门施著:博物馆学研究的目的

博物馆学研究的目的 (荷)彼得·冯·门施 尽管诸多关于博物馆学认知目的的不同看法可以被归纳为数个主要群体,但没有一个群体可以被称为“学派”。一般来说,学派是由于博物馆学研究目的的不...

乔老哥
今天
3
0
Vue slot的用法

之前看官方文档,由于自己理解的偏差,不知道slot是干嘛的,看到小标题,使用Slot分发内容,就以为 是要往下派发内容。然后就没有理解插槽的概念。其实说白了,使用slot就是先圈一块地,将来...

peakedness丶
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部