首页 > 其他分享 >sicp每日一题[2.28]

sicp每日一题[2.28]

时间:2024-09-25 11:26:41浏览次数:10  
标签:list 每日 fringe tree sicp iter 2.28 result define

Exercise2.28

Write a procedure fringe that takes as argument a tree (represented as a list) and returns a list whose elements are all the leaves of the tree arranged in left-to-right order. For example,

(define x (list (list 1 2) (list 3 4)))
(fringe x)
(1 2 3 4)
(fringe (list x x))
 (1 2 3 4 1 2 3 4)

这道题我参考了 count-leaves 和 练习 2.27,其中比较难处理的可能是 tree 的第一部分,要注意这里的 result 应该是空的,其他地方逻辑跟 2.27 就没什么区别了。

(define (fringe tree)
  (define (iter tree result)
    (cond ((null? tree) result)
          ((not (pair? tree)) (cons tree result))
          (else (append (iter (car tree) nil)
                        (iter (cdr tree) result)))))

  (iter tree nil))


(define x (list (list 1 2) (list 3 4)))

(fringe x)
(fringe (list x x))

; 执行结果
'(1 2 3 4)
'(1 2 3 4 1 2 3 4)

标签:list,每日,fringe,tree,sicp,iter,2.28,result,define
From: https://www.cnblogs.com/think2times/p/18430943

相关文章

  • Day5 JavaWeb知识了解以及每日一题:力扣125.验证回文串
    Day5JavaWeb知识了解以及每日一题:力扣125.验证回文串2024年9月24日20:06:45JavaWeb基础知识TomcatApacheTomcat是一个开源的Servlet容器和Web服务器,它是JavaEE(EnterpriseEdition)的一部分,专门用于运行JavaServlet和JavaServerPages(JSP)。Tomcat的主要功能是接收HTTP......
  • SolidJS-每日小知识(9/24)
    对图片指定范围的区域进行填充显示1定义变量,svg和image//用于保存SVG元素的引用const[svgRef,setSvgRef]=createSignal<SVGSVGElement|null>(null);//图像原始尺寸constimageSize={width:11920,height:16850};//裁剪区域constcroppedScope......
  • 软设每日打卡——在一个页式存储管理系统中,页表内容如下所示: 若页的大小为4KB,则地址转
    在一个页式存储管理系统中,页表内容如下所示:                  若页的大小为4KB,则地址转换机构将逻辑地址0转换成物理地址(块号在0开始计算)为A、8192        A、4096        C、2048        D、1024        答案:A解:......
  • sicp每日一题[2.24-2.27]
    2.24-2.26没什么代码量,所以跟2.27一起发吧。Exercise2.24Supposeweevaluatetheexpression(list1(list2(list34))).Givetheresultprintedbytheinterpreter,thecorrespondingbox-and-pointerstructure,andtheinterpretationofthisasatree(as......
  • Java基础练习(每日五题)
    1,通过代码编写,输一段话:“今天是学习的第一天”packagejava4;publicclasspractise{publicstaticvoidmain(String[]args){System.out.println("今天是学习的第一天");}}2,拼接打印:“XXX:我已经学习了JavaX年,我期望的工资是XXX”packagejava4;......
  • 苍穹外卖学习日志 -----20天项目从零到完结-----含软件下载,环境配置,框架学习,代码编写,
    年份2024    基础:Javase  Javaweb已完结   2024  8.25---9.14  20天Day-01   8.25今天开始学习已经晚了,网盘下载了一下文件,做了一些开始项目的准备工作。本来其实打算用notepad++来写学习日志的,但是那个传不了图片,而且编辑视图没有这......
  • 9.18每日总结
    今日学习时间一小时,echarts成功连接到了后天数据库,完成了实时动态表格,但是没并灭有使用ajax的方法,而是通过获取数据,之后进行字符串拼接的方式完成了获取数据库数据<%List<User>userList=(List<User>)session.getAttribute("u");StringBuilderuserIds=newStri......
  • py每日spider案例之网站视频接口
    importrequestscookies={'auth_id':'eyJpdiI6IlUzOEVzajFocW1ydGh4TGE0R00yaXc9PSIsInZhbHVlIjoidmw2UWF0cFJBMGF0TStBM0dBWVFNN09lMFpMV2xlMHdJSG1Ma1g4TUtSV0loKzJEY1psKzVML0ZjeVJUK1BTbk1obkFpYWNMUXdLSTJXWjdOK2lZSFluL3A4WmxkVDNoUElHbGx5UG9......
  • 9.20每日总结
    今日学习时间两小时,完成了hive的查找工作,但是在进行插入,删除和更新时遇到了问题,在进行插入工作时,数据能正确插入,但是在tomcat的web界面上会报错,删除以及更新操作不能进行。经过查找资料,原因是hive没有默认开启支持单条插入、更新以及删除。需要在hive-site.xml中插入<name>hive......
  • Vue-每日小知识(9/21)
    知识介绍对json数据进行优化使用vuex完成不同components之间的参数代码分析1.对json数据进行优化原数据:"connections":[{"X_point":{"coords":[13327354.751253285,3229146.98......