【SICP练习】61 练习2.31-2.32



练习2.31

我想说我已经越来越喜欢抽象了,将上一题中的map版本的square-tree抽象的方法是添加一个参数f,f是一个函数,因此将square替换成f即可。如下。

(define (map-tree f tree)

   (map (lambda (sub-tree)

           
(if (pair? sub-tree)

              
(tree-map f sub-tree)

               
(f sub-tree)))

          
tree))

(define (square-tree tree)

   (tree-map square tree))

下面就来测试一下咯。来个稍微厉害点的表好了。

(square-tree ‘(1 2 (3 4) 5 (6 7) ( (8(9 ) ) ) 10 ) )

;Value: (1 4 (9 16) 25 (36 49) ( (64(81 ) ) ) 100 )

练习2.32

迭代

时间: 2024-08-01 22:12:24

【SICP练习】61 练习2.31-2.32的相关文章

apue-APUE(版3) 例8.28 会计进程,第31,32行怎么解释?

问题描述 APUE(版3) 例8.28 会计进程,第31,32行怎么解释? 格式转换部分,comp_t to unsigned long 24 #if !defined(BSD) 25 static unsigned long 26 compt2ulong(comp_t comptime) /* convert comp_t to unsigned long */ 27 { 28 unsigned long val; 29 int exp; 30 31 val = comptime & 0x1f

法院认定盛大游戏“沙巴克”商标在第29、31、32等类“不构成对星巴克公司商标的抄袭摹仿”

摘要: 11月7日消息 星巴克公司诉盛大游戏沙巴克商标等对其抄袭与摹仿的案件在北京一中院一审审理终结,盛大游戏一审胜诉. 法院认定盛大游戏沙巴克商标在第29.31.32等类不构成对星巴 11月7日消息 星巴克公司诉盛大游戏"沙巴克"商标等对其"抄袭与摹仿"的案件在北京一中院一审审理终结,盛大游戏一审胜诉. 法院认定盛大游戏"沙巴克"商标在第29.31.32等类"不构成对星巴克公司商标的抄袭摹仿"北京一中院宣布维持国家工商行政管

使用librtmp进行H264与AAC直播

libx264版本是128libfaac版本是1.28 1.帧的划分 1.1 H.264帧 对于H.264而言每帧的界定符为00 00 00 01或者00 00 01. 比如下面的h264文件片断这就包函三帧数据 00 00 00 01 67 42 C0 28 DA 01 E0 08 9F 96 10 0000 03 00 10 00 00 03 01 48 F1 83 2A 00 00 00 0168 CE 3C 80 00 00 01 06 05 FF FF 5D DC 45 E9 BDE6

Video for Linux Two API Specification Revision 2.6.32【转】

转自:https://www.linuxtv.org/downloads/legacy/video4linux/API/V4L2_API/spec-single/v4l2.html Video for Linux Two API Specification Revision 2.6.32 Michael H Schimek     <mschimek@gmx.at>    Bill Dirks Original author of the V4L2 API and documentation.

WIN7旗舰版32位如何装java,装java哪个版本好?

问题描述 WIN7旗舰版32位如何装java,装java哪个版本好?我是初学者,想以后做安卓系统,请高人指点一下,因为我每次装完都无法建文本文件. 解决方案 解决方案二:装1.7的32位就行了解决方案三:装个1.8的就行了.版本无所谓.主要是技术.解决方案四:要装就装最新的!解决方案五:http://developer.android.com/sdk/index.html32位的DownloadEclipseADTwiththeAndroidSDKforWindows解决方案六:说要装就装最新的

Dbml文件提取建表TSql-CodeSmith

     在昨天一个大学师弟,他问我能不能将LinqToSql文件转化为创建表的TSql语句,他是刚开始学习.NET,所以在网上下些示例看,但苦于没有数据库.所以就有了这一篇博客,作为我的Code生成技术的CodeSimth的最后一篇示例.在下一步Code 生成技术将转到Microsoft的T4模板,Code生成技术目前完成的有CodeDom,CodeSmith模板,高手请不要拍砖,请直接跳过.      在Linq2Sql的Dbml文件其实就是一个Xml文件,记录着数据库与生成Linq2Sql

eclipse/intellij idea 远程调试hadoop 2.6.0

很多hadoop初学者估计都我一样,由于没有足够的机器资源,只能在虚拟机里弄一个linux安装hadoop的伪分布,然后在host机上win7里使用eclipse或Intellj idea来写代码测试,那么问题来了,win7下的eclipse或intellij idea如何远程提交map/reduce任务到远程hadoop,并断点调试? 一.准备工作 1.1 在win7中,找一个目录,解压hadoop-2.6.0,本文中是D:\yangjm\Code\study\hadoop\hadoop-2.

js身份证判断方法支持15位和18位

 这篇文章主要介绍了js身份证判断方法支持15位和18位,需要的朋友可以参考下 代码如下: //HTML页面上要有一个id为identity_card的input输入框,一个id为ipmessage的身份证错误或正确时提示消息的地方  <script>  //身份证验证  $(document).ready(function(){  $("#identity_card").change(function(){  var idcard =$(this).val();  che

Android-非常棒的HTTP通讯总结

  这里有一个非常棒的http通讯的总结,我看了以后茅塞顿开. 先贴代码: 01 public class Activity1 extends Activity { 02   03     private final String DEBUG_TAG = "System.out"; 04   05     private TextView mTextView; 06     private Button mButton; 07   08     protected void onCre

System V 消息队列

1.概述 消息队列可以认为是一个消息链表,System V 消息队列使用消息队列标识符标识.具有足够特权的任何进程都可以往一个队列放置一个消息,具有足够特权的任何进程都可以从一个给定队列读出一个消息.在某个进程往一个队列写入消息之前,并不需要另外某个进程在该队列上等待消息的到达.System V 消息队列是随内核持续的,只有在内核重起或者显示删除一个消息队列时,该消息队列才会真正被删除.可以将内核中的某个特定的消息队列画为一个消息链表,如下图所示: 对于系统中没个消息队列,内核维护一个msqid