标签:ide def 3.1 填充 ext fine 2.0 next define
(define (sum-integers a b)
(if (> a b)
0
(+ a (sum-integers (+ a 1) b))))
(sum-integers 1 10)
(define (sum-cubes a b)
(define (cube x)
(* x x x))
(if (> a b)
0
(+ (cube a) (sum-cubes (+ a 1) b))))
(sum-cubes 1 10)
(define (pi-sum a b)
(if (> a b)
0
(+ (/ 1.0 (* a (+ a 2))) (pi-sum (+ a 4) b))))
(* 8 (pi-sum 1 1000000))
对过程的抽象:
(define (sum term a next b)
(if (> a b)
0
(+ (term a)
(sum term (next a) next b))))
填充:
(define (inc n) (+ n 1)) (define (cube n) (* n n n)) (define (sum-cubes a b) (sum cube a inc b)) (sum-cubes 1 10)
(define (inc n) (+ n 1)) (define (identity x) x) (define (sum-integers a b) (sum identity a inc b)) (sum-integers 1 10)
(define (pi-next n) (+ n 4)) (define (pi-term x) (/ 1.0 (* x (+ x 2)))) (define (pi-sum a b) (sum pi-term a pi-next b)) (* 8 (pi-sum 1 10000))
拓展:
(define (integral f a b dx) ;积分
(define (add-dx x) (+ x dx))
(* (sum f (+ a (/ dx 2.0)) add-dx b)
dx))
(define (cube x) (* x x x))
(integral cube 0 1 0.0001)
标签:ide def 3.1 填充 ext fine 2.0 next define
原文地址:http://www.cnblogs.com/R4mble/p/7892680.html