灯下 登录
计算机科学 / SICP / 1.3.1 Procedures as Arguments

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 ⟨??⟩ ⟨??⟩))

练习 1.30:上面的 sum 过程产生线性递归。这个过程可以改写为迭代地完成求和。请通过填写以下定义中缺失的表达式来说明如何做到这一点:

(define (sum term a next b)
(define (iter a result)
(if ⟨??⟩
⟨??⟩
(iter ⟨??⟩ ⟨??⟩)))
(iter ⟨??⟩ ⟨??⟩))

Racket #lang sicp
(define (sum term a next b)
 (define (iter a result)
 (if ⟨??⟩
 ⟨??⟩
 (iter ⟨??⟩ ⟨??⟩)))
 (iter ⟨??⟩ ⟨??⟩))