1 (define (sum-odd-squares tree)
4 (if (odd? tree) (square tree) 0))
5 (else (+ (sum-odd-squares (car tree))
6 (sum-odd-squares (cdr tree))))))
14 (cons f (next (1+ k)))
18 (map square (list 1 2 3 4 5))
20 (define (filter predicate sequence)
21 (cond ((null? sequence) '())
22 ((predicate (car sequence))
24 (filter predicate (cdr sequence))))
25 (else (filter predicate (cdr sequence)))))
27 (filter odd? (list 1 2 3 4 5))
28 (define (accumulate op initial sequence)
32 (accumulate op initial (cdr sequence)))))
33 (accumulate + 0 (list 1 2 3 4 5))
34 (accumulate * 1 (list 1 2 3 4 5))
35 (accumulate cons nil (list 1 2 3 4 5))
37 (define (enumerate-interval low high)
40 (cons low (enumerate-interval (1+ low) high))))
41 (define (enumerate-tree tree)
42 (cond ((null? tree) '())
43 ((not (pair? tree)) (list tree))
44 (else (append (enumerate-tree (car tree))
45 (enumerate-tree (cdr tree))))))
46 (enumerate-tree (list 1 (list 2 (list 3 4)) 5))
48 (define (sum-odd-squares tree)
53 (enumerate-tree tree)))))
59 (enumerate-interval 0 n)))))