1.30

练习 1.30 上面的过程 sum 将产生出一个线性递归。我们可以重写该过程,使之能够迭代地执行。请说明应该怎样通过填充下面定义中缺少的表达式,完成这一工作。

(define (sum term a next b)
    (define (iter a result)
        (if <??>
            <??>
            (iter <??> <??>)))
    (iter <??> <??>))

测试一下:

(define (sum term a next b) (define (iter a result) (if (> a b) result (iter (next a) (+ result (term a))))) (iter a 0)) (define (cube x) (* x x x)) (define (inc n) (+ n 1)) (define (sum-cubes a b) (sum cube a inc b)) (sum-cubes 1 10)

results matching ""

    No results matching ""