sicp每日一题[2.31]

Exercise 2.31

Abstract your answer to Exercise 2.30 to produce a procedure t r e e − m a p tree-map tree−map with the property that s q u a r e − t r e e square-tree square−tree could be defined as

复制代码
(define (square-tree tree) (tree-map square tree))

这道题跟上面一道的 map 实现几乎一模一样,我还以为我理解错题目了,上网搜了一下,发现别人也是这么写的,那就这样吧。

复制代码
(define (tree-map 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
 (list 1
       (list 2 (list 3 4) 5)
       (list 6 7)))

; 执行结果
'(1 (4 (9 16) 25) (36 49))
相关推荐
m0_694845573 天前
tinylisp 是什么?超轻量 Lisp 解释器编译与运行教程
服务器·开发语言·云计算·github·lisp
爱思德学术4 天前
中国计算机学会(CCF)推荐学术会议-B(软件工程/系统软件/程序设计语言):ECOOP 2026
编程·编程语言
良许Linux5 天前
51单片机都有哪些优缺点
单片机·程序员·嵌入式·编程
pie_thn6 天前
懂得编程语言的通用结构,随便哪个语言都是手拿把掐
编程
这是个栗子6 天前
AI辅助编程工具(三) - Github Copilot
ai·编程·ai编程·github copilot
猿小羽7 天前
Flyway + Spring Boot:实现数据库迁移的最佳实践
spring boot·编程·flyway·最佳实践·数据库迁移
星火开发设计7 天前
C++ 输入输出流:cin 与 cout 的基础用法
java·开发语言·c++·学习·算法·编程·知识
星火开发设计7 天前
using 关键字:命名空间的使用与注意事项
开发语言·c++·学习·算法·编程·知识
RlQIbaGC8 天前
基于DBSCAN密度聚类的风电-负荷场景削减方法 关键词:密度聚类 场景削减 DBSCAN 场...
lisp
Tiger Z12 天前
《R for Data Science (2e)》免费中文翻译 (第19章) --- Joins(1)
r语言·编程·数据科学