問題1.30

sum手続きを反復プロセスに書き直す問題。

(define (sum-iter term a next b)
  (define (iter a result)
	(if (> a b)
		result
		(iter (next a) (+ result (term a)))))
  (iter a 0))

これは、意外とすんなり書けた。多分、sumと言う手続きが数え上げる意味合いの方が強いので、再帰よりも理解しやすいんだろう。