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))
相关推荐
wuyoula2 天前
AI面相最新版微信小程序源码
ai·php·编程·php源码·网站源码·ai源码·游戏源码
程序员鱼皮6 天前
颜色网站为啥都收费?自己做个要花多少钱?
计算机·程序员·互联网·编程·网站
xcLeigh9 天前
Rust入门:基础语法应用
开发语言·rust·编程·教程·基础语法
悟空码字11 天前
微信小程序管理系统,代运营3600+医院小程序
微信·小程序·编程·软件开发
Juchecar13 天前
超越经典23种设计模式:新模式、反模式与函数式编程
设计模式·云原生·函数式编程
程序员鱼皮17 天前
我发现很多程序员都不会打日志。。。
计算机·程序员·编程·开发·软件开发·编程经验
白鹿第一帅18 天前
【仓颉纪元】仓颉学习深度实践:30 天从零基础到独立开发
函数式编程·面向对象·快速上手·基础语法·白鹿第一帅·仓颉入门·编程语言学习
羑悻的小杀马特19 天前
ProtoBuf语法揭秘:探秘编译魔法与性能优化策略,解锁多层级选项配置的底层奥秘
c++·编程·protobuf
程序员鱼皮1 个月前
前后端分离,千万别再搞错了!
java·前端·后端·计算机·程序员·编程·软件开发
x70x801 个月前
git仓库基本使用
git·算法·编程