文档章节

【SICP练习】57 练习2.27

NoMasp
 NoMasp
发布于 2015/09/08 21:46
字数 205
阅读 2
收藏 0


练习2.27

又是修改程序的题目,要求我们写出的deep-reverse函数要将表中的元素也反转过来,这其中应该要用到递归来实现吧。

(define (deep-reverse tree)

   (cond ((null? tree) ‘())

          ((not (pair? tree)) tree)

          (else (reverse (list (deep-reverse(car tree))

                           (deep-reverse (cadrtree)))))))

但是对于((1 2) (3 4) (5 6))这种,上面的函数就无法按我们的刚才的想法来返回了。它的返回值会是(4 3) (2 1)),而我们要的返回值则是((6 5) (4 3) (2 1))。因此要对程序进行修改。

(define (deep-reverse lst)

   (define (iter remainder-items result)

       (if (null? remainder-items)

           result

           (iter (cdr remainder-items

                (cons (if (pair? (car remainder-items))

                         (deep-reverse (car remainder-items))

                         (car remainder-items))

                      result))))

     (iter lst ‘()))

版权声明:本文为 NoMasp柯于旺 原创文章,未经许可严禁转载!欢迎访问我的博客:http://blog.csdn.net/nomasp

本文转载自:http://blog.csdn.net/nomasp/article/details/43907375

NoMasp
粉丝 7
博文 334
码字总数 0
作品 0
镇江
程序员
私信 提问
C语言变量定义 splint

按照 [C语言入门经典(第四版)][(美)霍顿] 书里写练习了一段代码.用splint检查了一下.出下面的问.说是未定义的变量错误. 不明白怎么写才算了定义了变量.如果使用/*@out@*/只是忽略检查. 下面...

DengMark
2012/05/19
345
1
李雯 2017-2-16 工作日报

8:00~9:00 業務内容: 1>处理 Amazon 网络订单4张 成果: 1.友盛売上伝票4张 2.友利売上伝票4张 3.友利仕入伝票4张 4.送り状4张 9:00~12:00 業務内容: 1>到楽天网站下载精算书,制作2.27楽天2...

ribunn
2017/02/16
1
0
李雯 2017-3-21 工作日报

8:00~10:30 業務内容: 1>处理 Amazon 网络订单5张,本味10张 成果: 1.友盛売上伝票16张 2.友利売上伝票16张 3.友利仕入伝票16张 4.送り状17张 5.振替伝票1张 10:30~12:00 業務内容: 根据友盛...

ribunn
2017/03/21
2
0
李雯 2017-2-23 工作日报

8:00~9:00 業務内容: 1>处理 Amazon 网络订单5张 成果: 1.友盛売上伝票5张 2.友利売上伝票5张 3.友利仕入伝票5张 4.送り状5张 9:00~12:00 業務内容: 根据友盛売上和聖元仕入对照表录入2017....

ribunn
2017/02/23
2
0
李雯 2017-2-24 工作日报

8:00~9:00 業務内容: 1>到Amazon网站下载精算书,制作2.23Amazon2017.2.7-2.21入金明细表 2>根据2.23Amazon2017.2.7-2.21入金明细表到受注番号在Amazon网站检索得意先名填入表格 成果: 1>制作...

ribunn
2017/02/24
2
0

没有更多内容

加载失败,请刷新页面

加载更多

华为手机翻译功能怎么使用?这三种方法请务必收藏

华为手机翻译功能怎么使用?在我们的生活中会经常遇到翻译问题,许多外语不好的朋友该怎么办呢?华为手机已经为我们解决了这个问题,今天小编就教大家学会使用华为手机中的三种翻译技巧,需要...

翻译小天才
36分钟前
4
0
企业服务软件开发中需要注意的三个问题

在开发企业服务软件时,我们需要分为:业务需求、用户需求、产品需求,三大需求层次,三个层次互相关联,企业服务软件开发首先要服务业务,需要满足业务的需求,再关注用户体验,也就是用户需...

积木创意科技
39分钟前
4
0
C++容器底层数据结构

内置数组: int arr[10][10];memset(arr,0,10*10*sizeof(int)); //初始化int tmp[10][10];memcpy(arr, tmp, 10 * 10 * sizeof(int));//拷贝 void *memcpy(void *destin, void *source,......

SibylY
39分钟前
4
0
Dubbo-自适应拓展机制

背景 在 Dubbo 中,很多拓展都是通过 SPI 机制进行加载的,比如 Protocol、Cluster、LoadBalance 等,这些都是Dubbo的基础组件。这些基础组件的拓展不是在系统框架启动阶段被加载,而是拓展方...

rock-man
今天
7
0
Kali安装fcitx输入法(五笔)

安装fcitx > sudo apt-get install fcitx-rime fcitx-config-gtk3 重启 > sudo reboot fcitx配置 效果就是这样 配置输入法切换 系统设置...

yeahlife
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部