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))
相关推荐
爱喝白开水a2 天前
从零开始学无监督学习:图像混合与标签平滑技术详解,收藏不走丢
人工智能·深度学习·学习·ai·大模型·编程·ai大模型
桦说编程2 天前
使用注解写出更优雅的代码,以CFFU为例
java·后端·函数式编程
间彧3 天前
Collection.stream()深度使用与实战
函数式编程
网络安全大学堂4 天前
【网络安全入门基础教程】网络安全就业方向(非常详细)零基础入门到精通,收藏这篇就够了
网络·安全·web安全·计算机·网络安全·程序员·编程
smilejingwei6 天前
数据分析编程第六步:大数据运算
java·大数据·开发语言·数据分析·编程·esprocspl
skywalk81639 天前
升级DrRacket8.10到8.18版本@Ubuntu24.04
linux·运维·服务器·lisp·racket
桦说编程14 天前
Java 要变天了,支持类型类 type classes
java·后端·函数式编程
楽码16 天前
傻傻分不清:信息和通信复杂度
网络协议·算法·函数式编程
桦说编程19 天前
方法一定要有返回值 \ o /
java·后端·函数式编程
桦说编程20 天前
Java 中如何创建不可变类型
java·后端·函数式编程