文档章节

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直到所有的元素都已加入。

© 著作权归作者所有

共有 人打赏支持
粉丝 1
博文 47
码字总数 9258
作品 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

没有更多内容

加载失败,请刷新页面

加载更多

安全管理标准

安全生产严重等级分类: 故障频次: 风险等级矩阵:

乔老哥
8分钟前
1
0
数据结构“树”的相关微视频

今天在腾讯视频上闲逛,然後发现一个叫“岚人”的用户上传了几段小视频,基本上都在5分钟以内,讲解了关于树的一些结构和算法。零代码,非常适合初学者入门。不过,对于老鸟来说,这也是非常...

Iridium
20分钟前
0
0
10-利用思维导图梳理JavaSE-Java 集合

10-利用思维导图梳理JavaSE-Java 集合 主要内容 1.Collection接口 2.Set接口 2.1.Set接口概述 2.2.HashSet类 2.3.TreeSet类 2.4.SortedSet接口 3.List接口 3.1.List接口概述 3.2.ArrayList类...

飞鱼说编程
31分钟前
3
0
活动推荐|互联网3.0与区块链新时代论坛(北京)

1 时间地点 **时间:**9月22日 14:00 - 18:00 地点:(北京海淀)西大街70号 3w咖啡 二层 2 活动详情 Harmony创始人Stephen及团队将介绍他们的区块链分片扩容技术。Stephen曾任Apple地图服务...

HiBlock
49分钟前
1
0
如何优雅的删除Redis的大key

关于Redis大键(Key),我们从[空间复杂性]和访问它的[时间复杂度]两个方面来定义大键。前者主要表示Redis键的占用内存大小;后者表示Redis集合数据类型(set/hash/list/sorted set)键,所含有的...

IT--小哥
59分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部