普通递归写法
(define (square-tree tree)
(cond ((null? tree) ())
((not (pair? tree)) (* tree tree))
(else (cons (square-tree (car tree))
(square-tree (cdr tree))))))
(square-tree
(list 1
(list 2 (list 3 4) 5)
(list 6 7)))
用了map
(define (square-tree tree)
(map (lambda (sub-tree)
(if (pair? sub-tree)
(square-tree sub-tree)
(* sub-tree sub-tree))) tree))
(square-tree
(list 1
(list 2 (list 3 4) 5)
(list 6 7)))
本文介绍了一种使用普通递归和map函数来处理树形结构的方法,通过两个不同的实现方式来完成树中每个元素的平方运算。首先展示了基本的递归函数定义,然后介绍了如何利用map和lambda表达式简化代码。
2366

被折叠的 条评论
为什么被折叠?



