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))
相关推荐
Huazzi.7 小时前
使用SSH协议克隆详细步骤
linux·运维·学习·ssh·编程
Huazzi.21 小时前
Ubuntu 22虚拟机【网络故障】快速解决指南
linux·网络·学习·ubuntu·bash·编程
十年编程老舅4 天前
二本计算机,毕业=失业?
c++·程序员·编程·秋招·c++项目·春招·qt项目
安冬的码畜日常10 天前
【玩转 JS 函数式编程_016】DIY 实战:巧用延续传递风格(CPS)重构倒计时特效逻辑
开发语言·前端·javascript·重构·函数式编程·cps风格·延续传递风格
AI大模型顾潇21 天前
[特殊字符] Prompt如何驱动大模型对本地文件实现自主变更:Cline技术深度解析
前端·人工智能·llm·微调·prompt·编程·ai大模型
Java知识库22 天前
Java基础知识面试题(已整理Java面试宝典pdf版)
java·面试·程序员·编程·面试题
zidea1 个月前
Rust 闭包:捕获环境的魔法函数
rust·ai编程·函数式编程
jimin_callon1 个月前
VBA第三十八期 VBA自贡分把表格图表生成PPT
开发语言·python·powerpoint·编程·vba·deepseek
chem41111 个月前
Conmon lisp Demo
服务器·数据库·lisp
莲动渔舟1 个月前
Nyquist插件基础:打印格式化字符串(LISP语言)
开发语言·lisp·音频处理·audacity