抽象概括出有价值的公共模式1234567891011121314151617(define (sum-int a b) (if (> a b) 0 (+ a (sum-int (1+ a) b))));(define (sum-sq a b) (if (> a b) 0 (+ (square a) (sum-sq (1+ a) b))));(define (pi-sum a b) (if (> a b) 0 (+ (/ 1 (* a (+ a 2))) (pi-sum (+ a 4) b))))
对于一个求和过程可以抽出必有的求和作为骨架,将求出加的项和推出下一个迭代变量的过程作为参数提出来,进行递归的表示。
|
|
通过更高阶的过程传入要进行处理的过程,从而只改动隔离出的很小一部分就能产生新的求和过程。这样的程序易写易读。
|
|