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))
相关推荐
AI大模型顾潇15 小时前
[特殊字符] Prompt如何驱动大模型对本地文件实现自主变更:Cline技术深度解析
前端·人工智能·llm·微调·prompt·编程·ai大模型
Java知识库1 天前
Java基础知识面试题(已整理Java面试宝典pdf版)
java·面试·程序员·编程·面试题
zidea12 天前
Rust 闭包:捕获环境的魔法函数
rust·ai编程·函数式编程
jimin_callon16 天前
VBA第三十八期 VBA自贡分把表格图表生成PPT
开发语言·python·powerpoint·编程·vba·deepseek
chem411119 天前
Conmon lisp Demo
服务器·数据库·lisp
莲动渔舟20 天前
Nyquist插件基础:打印格式化字符串(LISP语言)
开发语言·lisp·音频处理·audacity
莲动渔舟20 天前
Nyquist插件基础:LISP语法-自定义函数
服务器·开发语言·lisp·音频处理·audacity
莲动渔舟20 天前
Nyquist插件基础:LISP语法-运算符
开发语言·lisp·音频处理·audacity
xinxiyinhe24 天前
github免费编程类工具汇总与评估(二)
前端·后端·编程
独泪了无痕25 天前
Optional 使用指南:彻底告别 NPE
后端·函数式编程