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))
相关推荐
AI-智能11 天前
DeepSeek入门到精通!(清华大学104页ppt下载)
人工智能·程序员·langchain·编程·llama·milvus·deepseek
Oberon12 天前
从零开始的函数式编程(2) —— Church Boolean 编码
数学·函数式编程·λ演算
大模型铲屎官13 天前
掌握 CSS Flexbox 布局,轻松实现复杂网页设计
前端·css·html·编程·css3·html5·flexbox
岁月如歌,青春不败16 天前
Python 数据挖掘与机器学习
python·神经网络·决策树·随机森林·机器学习·数据挖掘·编程
大模型铲屎官17 天前
前端框架中 HTML 的应用技巧:React、Vue、Angular 深度解析
react.js·前端框架·vue·html·编程·html5·angular
大模型铲屎官18 天前
深入剖析 HTML5 新特性:语义化标签和表单控件完全指南
前端·html·编程·html5·语义化标签·表单控件
大模型铲屎官19 天前
告别页面刷新!如何使用AJAX和FormData优化Web表单提交
前端·javascript·ajax·html·编程·页面刷新·表单提交
桦说编程21 天前
CompletableFuture 超时功能有大坑!使用不当直接生产事故!
java·性能优化·函数式编程·并发编程
大模型铲屎官21 天前
HTML从入门到精通:链接与图像标签全解析
开发语言·前端·javascript·html·编程·链接标签·图像标签
大模型铲屎官21 天前
HTML常见文本标签解析:从基础到进阶的全面指南
前端·css·html·编程·html5·文本标签