(define (filtered-accumulate predicate combiner null-value term a next b)
(if (> a b)
null-value
(filtered-accumulate predicate
combiner
(cond
((predicate a) (combiner (term a) null-value))
(else null-value))
term
(next a)
next
b)))
(define (square-of-prime a b)
(filtered-accumulate prime? + 0 square a inc b))
(define (gcd a b)
(if (= b 0)
a
(gcd b (remainder a b))))
(define (seed? n i)
(= (gcd n i) 1))
(define (product-of-seed n)
(define (seed? i)
(= (gcd n i) 1))
(filtered-accumulate seed? * 1 identity 1 inc (- n 1)))

(if (> a b)
null-value
(filtered-accumulate predicate
combiner
(cond
((predicate a) (combiner (term a) null-value))
(else null-value))
term
(next a)
next
b)))
(define (square-of-prime a b)
(filtered-accumulate prime? + 0 square a inc b))
(define (gcd a b)
(if (= b 0)
a
(gcd b (remainder a b))))
(define (seed? n i)
(= (gcd n i) 1))
(define (product-of-seed n)
(define (seed? i)
(= (gcd n i) 1))
(filtered-accumulate seed? * 1 identity 1 inc (- n 1)))

댓글 없음:
댓글 쓰기