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
这个显然是迭代。
76

被折叠的 条评论
为什么被折叠?



