Sicp Exercise 1.30

Exercise 1.30. The sum procedure above generates a linear recursion. The procedure can be rewritten so that the sum is performed iteratively. Show how to do this by filling in the missing expressions in the following definition:

(define (sum term a next b)
(define (iter a result)
(if

(iter )))
(iter ))

(define (inc n) (+ n 1))
(define (identity x) x)
(define
(sum-iter-helper
runningsum
termfunction
termvalue
nextfunction
upperbound)
(if
(> termvalue upperbound)
runningsum
(sum-iter-helper
(+ runningsum (termfunction termvalue))
termfunction
(nextfunction termvalue)
nextfunction
upperbound)))
(define (sum term a next b)
(sum-iter-helper
0
term
a
next
b))
(define (sum-integers a b)
(sum identity a inc b))
(sum-integers 1 10)
view raw s130.scm hosted with ❤ by GitHub