sumを再帰的プロセスから反復的プロセスにかきなおしましょう。
(define (sum term a next b) (define (iter a result) (if (> a b) result (iter (next a) (+ (term a) result)))) (iter a 0))
0から100まで足しまくって確認してみる。
gosh> (define (identity x) x) identity gosh> (define (inc x) (+ x 1)) inc gosh> (sum identity 0 inc 100) 5050
なんかいいかんじです。