Exercise 1.9 写道
Exercise 1.9. Each of the following two procedures defines a method for adding two positive integers in
terms of the procedures inc, which increments its argument by 1, and dec, which decrements its
argument by 1
terms of the procedures inc, which increments its argument by 1, and dec, which decrements its
argument by 1
(define (+ a b) (if (= a 0) b (inc (+ (dec a) b)))) (define (+ a b) (if (= a 0) b (+ (dec a) (inc b))))
写道
Using the substitution model, illustrate the process generated by each procedure in evaluating (+ 4 5).
Are these processes iterative or recursive?
Are these processes iterative or recursive?
这两个函数,分别使用两个用于自增(inc)和自减(dec)变量的方法组成,使用substitution model来展开它们计算(+ 4 5)的过程,并且指出他们的过程是迭代还是递归。
严格的按照过程展开即可
第一个:
(+ 4 5) (inc (+ (dec 4) 5)) (inc (+ 3 5)) (inc (inc (+ (dec 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
这个是一个递归过程
第二个方法:
(define (+ a b) (if (= a 0) b (+ (dec a) (inc b)))) (+ 4 5) (+ 3 6) (+ 2 7) (+ 1 8) (+ 0 9) 9
这个显然是迭代。