sicp 1.9

两种方式计算(+ 4 5)

 

(define (+ a b)
  (if (= a 0)
	  b
	  (inc (+ (dec a) b))))

(define (+ a b)
  (if (= a 0)
	  b
	  (+ (dec a) (inc b))))
 

 

第一种方式,是一个递归过程:

(+ 4 5)

(inc (+ 3 5))

(inc (inc (+ 2 5)))

(inc (inc (inc (+ 1 5))))

(inc (inc (inc (inc (+ 0 5)))))

(inc (inc (inc (inc 5))))

(inc (inc (inc 6)))

(inc (inc 7))

(inc 8)

9

 

第二种方式,是一个迭代过程:

(+ 4 5)

(+ 3 6)

(+ 2 7)

(+ 1 8)

(+ 0 9)

9

 

 

你可能感兴趣的:(SICP)