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))
相关推荐
再思即可5 天前
sicp每日一题[2.77]
算法·lisp·函数式编程·sicp·scheme
桦说编程5 天前
把 CompletableFuture 当做 monad 使用的潜在问题与改进
后端·设计模式·函数式编程
G皮T5 天前
【设计模式】行为型模式(三):责任链模式、状态模式
java·设计模式·状态模式·编程·责任链模式·state
xingbuxing_py6 天前
精华帖分享|浅谈金融时间序列分析与股价随机游走
python·金融·编程·量化交易·理财·量化投资·股市
JavaPub-rodert6 天前
# Python IDE的介绍和选择 --- 《跟着小王学Python》
开发语言·ide·python·编程·开发
蜗牛快跑2138 天前
面向对象编程 vs 函数式编程
前端·函数式编程·面向对象编程
Python_trys12 天前
Python爬虫基础-正则表达式!
开发语言·爬虫·python·正则表达式·编程
howard200512 天前
初试Lisp语言
开发语言·lisp
大福是小强16 天前
002-Kotlin界面开发之Kotlin旋风之旅
kotlin·函数式编程·lambda·语法·运算符重载·扩展函数
科技前言17 天前
探索Python编程:从入门到实践的全面指南
编程