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))
相关推荐
canonical-entropy4 天前
集成NopReport动态生成Word表格
后端·低代码·函数式编程·可逆计算·nop平台
C++chaofan10 天前
通过Selenium实现网页截图来生成应用封面
java·spring boot·后端·selenium·测试工具·编程·截图
yngsqq13 天前
Lisp 与 C# 交互中,类型码(TypeCode)的映射关系
开发语言·c#·lisp
程序员鱼皮22 天前
刚刚 Java 25 炸裂发布!让 Java 再次伟大
java·javascript·计算机·程序员·编程·开发·代码
白帽黑客沐瑶23 天前
【网络安全就业】信息安全专业的就业前景(非常详细)零基础入门到精通,收藏这篇就够了
网络·安全·web安全·计算机·程序员·编程·网络安全就业
程序员鱼皮24 天前
AI 应用开发,不就是调个接口么?
计算机·ai·程序员·互联网·编程·网站
FunTester25 天前
拥抱直觉与创造力:走进VibeCoding的新世界
人工智能·语言模型·编程·vibecoding
程序员鱼皮1 个月前
我看到了 17 年前的 GitHub,竟然长这样?!
程序员·互联网·github·编程·项目