Exercise 1.9
(define (inc x) (+ x 1))
(define (dec x) (- x 1))
(define (r+ a b)
(if (= a 0) b (inc (r+ (dec a) b))))
(define (i+ a b)
(if (= a 0) b (i+ (dec a) (inc b))))
r+ generates a recursive process:
(r+ 4 5)
=> (inc (r+ 3 5))
=> (inc (inc (r+ 2 5))) ; expanding
=> (inc (inc (inc (r+ 1 5))))
=> (inc (inc (inc (inc (r+ 0 5))))) ; 4 deferred operations
=> (inc (inc (inc (inc 5))))
=> (inc (inc (inc 6))) ; contracting
=> (inc (inc 7))
=> (inc 8)
=> 9
i+ generates an iterative process: