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))
相关推荐
ProcessOn官方账号3 天前
java函数式编程--入门基础
java·编程·函数式编程
codigger3 天前
我用 AI 做完整项目后,总结出一套把需求钉死的工作流
ai·程序员·编程·ai编程·#人工智能
白猫不黑4 天前
网络安全面试题大全:22道高频题附解析与答案
web安全·计算机·网络安全·信息安全·渗透测试·编程·面试题
白猫不黑4 天前
网络安全和信息安全的区别:全方位解析与学习路径
计算机·网络安全·黑客·信息安全·程序员·渗透测试·编程
codigger7 天前
CLI 还是 MCP?一场关于 Agent 工具接口的再思考
程序员·编程·#人工智能·#agent
aluluka11 天前
《elisp 每日一练》——状态栏显示管理与modeline 动态更新
emacs·lisp·elisp
楚国的小隐士12 天前
在生产环境中和AI协作编程
ai·大模型·编程·软件工程·ai编程·软件架构
aluluka12 天前
《elisp 每日一练》——minor mode 快捷键管理
emacs·lisp·elisp
白猫不黑14 天前
大学网安方向学习路线:零基础与有基础的学习顺序整理
学习·web安全·计算机·网络安全·信息安全·编程·src漏洞
fthux14 天前
编程:连接思想、组织与未来的现代实践
编程·fthux