問題 2.30
(define (square x) (* x x)) ;高階手続き無しの形。 (define (square-tree tree) (cond ((null? tree) null) ((not (pair? tree)) (square tree)) (else (cons (square-tree (car tree)) (square-tree (cdr tree)))))) (square-tree (list 1 (list 2 (list 3 4) 5) (list 6 7))) ;-> (1 (4 (9 16) 25) (36 49)) ;map再帰の形。 (define (square-tree tree) (map (lambda (item) (if (pair? item) (square-tree item) (square item))) tree)) (square-tree (list 1 (list 2 (list 3 4) 5) (list 6 7))) ;-> (1 (4 (9 16) 25) (36 49))