【SICP练习】57 练习2.27



练习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 ‘()))

时间: 2024-09-20 06:05:59

【SICP练习】57 练习2.27的相关文章

ORACLE DATE和TIMESTAMP数据类型的比较(二)

oracle|比较|数据|数据类型 原著作者:James Koopmann TIMESTAMP数据的格式化显示和DATE 数据一样.注意,to_char函数支持date和timestamp,但是trunc却不支持TIMESTAMP数据类型.这已经清楚表明了在当两个时间的差别极度重要的情况下,使用TIMESTAMP数据类型要比DATE数据类型更确切. 如果你想显示TIMESTAMP的小数秒信息,参考下面: 1  SELECT TO_CHAR(time1,'MM/DD/YYYY HH24:MI:SS

怎样按一定时间间隔跳跃查询数据?

问题来自云栖问答,觉得比较好,所以记录一下: 我的项目用的是MySQL,但也想同时请教下在Oracle.SqlServer中应该如何处理如下问题: 有数据表如下所示: 希望从表中抽取数据,要求两条记录的时间间隔至少2分钟 对下面图片中的数据而言,假如我查询的时间范围是从2014-08-10 23:20:00开始的, 则希望抽取到如下结果集: '83', '57', '10041', '74.27', '0', '2014-08-10 23:20:04' '113', '57', '10041',

基于Java回顾之集合的总结概述_java

Java中的集合主要集中在2部分,一部分是java.util包中,一部分是java.util.concurrent中,后者是在前者的基础上,定义了一些实现了同步功能的集合. 这篇文章主要关注java.util下的各种集合对象.Java中的集合对象可以粗略的分为3类:List.Set和Map.对应的UML图如下(包括了java.util下大部分的集合对象):Collection概述 Java集合中的List和Set都从Collection出来,它是一个学习集合很不错的入口,它包含了集合中通常需要有

2011年第三季度移动互联网IM市场数据报告

根据EnfoDesk易观智库产业数据库2011年的数据显示,在2011年第3季度的移动IM市场,其中累积账户数前三名为手机QQ.手机飞信.手机MSN,它们的市场份额分别是57.8%.27%和8.1%. 2011Q3移动IM累计帐户份额 而在2011Q3的市场推动力来自于新型移动IM的发展.而在其中微信第3季度的累积账户市场份额为2.5%,和第2季度0.5%的市场份额比较起来增长了2个百分点.而微信累计账户数实现了爆发式增长,而主要因为与手机QQ.手机邮箱等设计关联性组合,从而形成了相辅相成的业务

一汽整体上市箭已上弦首选A+H投行已经入局

IPO作为直接融资的平台,会更方便一汽集团直接进行大规模的融资 理财周报见习记者 曾文璐/文 一汽集团整体上市进入倒计时. 一汽集团的整体上市已经不是新鲜的话题,关于这个题材的议论也在三年的时光里时隐时现,时间表和具体方案都是扑朔迷离.而这次,确实箭在弦上.有消息指,投行已经正式介入,材料正在如火如荼的赶制中. 消息和上市公司动作共同指向了一汽整体上市的方案是,将一汽夏利(000927.SZ).一汽轿车(000800.SZ)等资产一并装入新设立的一汽股份.和传言中的五矿集团整体上市一样,将选择以

赛维深陷借新还旧泥潭逾百亿银行贷款卷入

董云峰 7月17日,<第一财经日报(微博)>独家报道<赛维债务财政兜底叩问政府企业边界>,警示了江西赛维LDK太阳能高科技有限公司(下称"赛维")所面临的巨额债务风险.当地政府准备启用财政资金为赛维信托贷款兜底,更是引发了各界对政企边界的热议. 根据本报记者掌握的最新材料,截至今年一季度末,十多家金融机构与两家地方国企向赛维提供的借款余额高达128.85亿元,其中,期限不高于1年的短期借款高达82.67亿元,这将对基本面严重恶化的赛维形成严峻挑战. "

Oracle实例囚笼(Instance Caging)

Oracle实例囚笼(Instance Caging) 当多个实例运行在同一台服务器上时,为了避免实例间的相互影响,从oracle 11gr2开始推出了实例囚笼的概念.实例囚笼能够限制数据库实例使用的CPU资源.使用实例囚笼,只需要设置CPU_COUT和resource_manager_plan两个参数.该功能可以用于的数据库资源整合,而取代之前的虚拟化和分区等传统的资源分割方法 1,打开swingbench准备设置后进行压力测试(具体方法见前面文章) 2,查看服务器的CPU个数select v

明日“双十一”盛宴开启 10光棍节概念股值得期待

自淘宝在2009年首次将"双十一"(11月11日)与网购联系起来,时间已经过去三年.对网民来说,"双十一"早已不再是曾经那个牵强附会的光棍节,摇身一变成为热火朝天的网购节."双十一"在当年或许是灵光一闪的营销理念,但现在已经成为电商业的狂欢节,被赋予了更多的意义.从物流.电商支付和影视娱乐三个角度去解读不一般的"双十一",仅挖掘潜力9股供投资者参考,不做为买卖建议,股市有风险,投资需谨慎. 双11临近促销战一触即发物流电商股或

保卫萝卜2极地冒险第57、27、22关攻略

[保卫萝卜2第57关攻略] 1.如图,放置瓶子炮塔并升级,攻击上方的云朵. 2.将刚才云朵位置上的船锚炸弹升级并攻击下面的气球. 3.在刚才的位置上,安置2个多重箭来进行攻击. 4.建1个冰锥塔来减速,将上方的船锚炸弹升级. 5.清理道具,完成布阵. 6.获得金萝卜,任务完成了! [保卫萝卜2第27关攻略] 1.如下图,放一个顶级飞机,清理周围的道具. 2.怪物出口放一个减速风扇,其他位置放飞机,如下图. 3.怪物出口再放几架飞机. 4.把飞机到升到顶级即可. 5.获得金萝卜了! [保卫萝卜2第