1.33 Exercise 1.33
(define (filtered-accumulate predicate combiner null-value term a next b) (define (iter a result) (cond ((> a b) result) ((predicate a) (iter (next a) (combiner result (term a)))) (else (iter (next a) result)))) (iter a null-value))
(define (sum-of-primes a b) (filtered-accumulate prime? + 0 identity a inc b))
(define (product-of-relatively-prime n) (define (is-relatively-prime? i) (= 1 (gcd i n))) (filtered-accumulate is-relatively-prime? * 1 identity 1 inc (- n 1)))