Exercise 1.33

(define (filtered-accumulate combine pred? id term a next b)
  (define (iter a acc)
    (cond ((> a b) acc)
          ((pred? a)
           (iter (next a) (combine (term a) acc)))
          (else (iter (next a) acc))))
  (iter a id))
  • Sum of squares of primes in the interval form a to b:

```scheme (define (sum-squared-primes a b) (filtered-accumulate + prime? 0 square a inc b))

(sum-squared-primes 10 15) => 290
```
  • Product of positive integers below n relatively prime to n:

```scheme (define (product-rel-prime n) (define (rel-prime? i) (= (gcd i n) 1)) (filtered-accumulate * rel-prime? 1 identity 1 inc (- n 1)))

(product-rel-prime 10) => (* 3 7 9)
```