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))
相关推荐
桦说编程16 分钟前
Java 中如何创建不可变类型
java·后端·函数式编程
程序员鱼皮3 天前
爆肝2月,我的 AI 代码生成平台上线了!
java·前端·编程·软件开发·项目
程序员鱼皮9 天前
刚刚,GPT-5 炸裂登场!可免费使用
计算机·ai·互联网·编程
HW-BASE10 天前
C语言的结构体与联合体
c语言·单片机·嵌入式·编程·c
网络安全大学堂11 天前
【网络安全入门基础教程】TCP/IP协议深入解析(非常详细)零基础入门到精通,收藏这一篇就够了
网络协议·tcp/ip·web安全·计算机·黑客·程序员·编程
桦说编程12 天前
CompletableFuture 的第四种调用模式
java·性能优化·函数式编程
悦悦子a啊22 天前
Python之--集合
开发语言·python·编程
songgeb1 个月前
Currying and Partial application
swift·函数式编程
程序员鱼皮1 个月前
会Vibe Coding的同事:我一个人干掉整个技术部!
ai·程序员·互联网·编程·开发·代码
程序员鱼皮1 个月前
Cursor 1.2重磅更新,这个痛点终于被解决了!
ai·程序员·编程·agent·软件开发