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))
相关推荐
Java知识库3 天前
聊聊JVM怎么调优?(实战总结)
java·开发语言·jvm·程序员·编程
程序员鱼皮7 天前
Claude 4炸裂发布!凭什么敢称宇宙最强编程 AI?
计算机·ai·编程·开发·代码
硬核科技9 天前
超时处理机制设计:从TICK到回调
单片机·嵌入式硬件·嵌入式·编程·嵌入式软件·软件
森哥的歌17 天前
Python多线程
python·编程·多线程·并发·threading
Huazzi.21 天前
使用SSH协议克隆详细步骤
linux·运维·学习·ssh·编程
Huazzi.21 天前
Ubuntu 22虚拟机【网络故障】快速解决指南
linux·网络·学习·ubuntu·bash·编程
十年编程老舅24 天前
二本计算机,毕业=失业?
c++·程序员·编程·秋招·c++项目·春招·qt项目
安冬的码畜日常1 个月前
【玩转 JS 函数式编程_016】DIY 实战:巧用延续传递风格(CPS)重构倒计时特效逻辑
开发语言·前端·javascript·重构·函数式编程·cps风格·延续传递风格
AI大模型顾潇1 个月前
[特殊字符] Prompt如何驱动大模型对本地文件实现自主变更:Cline技术深度解析
前端·人工智能·llm·微调·prompt·编程·ai大模型
Java知识库1 个月前
Java基础知识面试题(已整理Java面试宝典pdf版)
java·面试·程序员·编程·面试题