练习2.31
我想说我已经越来越喜欢抽象了,将上一题中的map版本的square-tree抽象的方法是添加一个参数f,f是一个函数,因此将square替换成f即可。如下。
(define (map-tree 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 ‘(1 2 (3 4) 5 (6 7) ( (8(9 ) ) ) 10 ) )
;Value: (1 4 (9 16) 25 (36 49) ( (64(81 ) ) ) 100 )
练习2.32
迭代