要求:有一棵树 (list 1 2 3 (list (list 4) 5) 6),将其转换为树 (1 4 9 ((16) 25) 36)
方案一:二叉递归(我根据自己的理解起得名字LOL)
> (define (square_tree tree)
(cond ((null? tree) '())
((not (pair? tree))
((lambda (x) (* x x)) tree))
(else (cons (square_tree (car tree))
(square_tree (cdr tree))))))
方案二:子树缩放(也是我起的名字。。。),将树看成子树的序列,进行map操作
> (define (square_tree tree)
(map (lambda (sub_tree)
(if (pair?