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))
相关推荐
窗户9 天前
排列和组合的实现
排列组合·函数式·haskell·scheme
鱼樱前端9 天前
Vue3之ref 实现源码深度解读
vue.js·前端框架·函数式编程
络~11 天前
shell编程-for循环-while循环-until循环基础
编程
网络安全成叔11 天前
【入门级】计算机网络学习
学习·计算机网络·web安全·计算机·网络安全·编程
skywalk816313 天前
易于使用和学习的编程语言Arc(list)入门手册
list·编程·arc
RJiazhen18 天前
前端项目中的函数式编程初步实践
前端·函数式编程
Javatutouhouduan1 个月前
如何系统全面地自学Java语言?
java·后端·程序员·编程·架构师·自学·java八股文
程序员鱼皮1 个月前
一句话,我让 AI 帮我做了个 P 图网站!
计算机·ai·编程·开发
WANGWUSAN661 个月前
Python高频写法总结!
java·linux·开发语言·数据库·经验分享·python·编程
程序无涯海1 个月前
【Java技巧】深入浅出 Guava Retry 框架:业务兜底重试方案示例
java·开发语言·编程·guava·重试