2015년 8월 3일 월요일

SICP Exercise 1.9 / SICP 연습문제 1.9

SICP Exercise 1.9 / SICP 연습문제 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.

연습문제 1.9
다음 두 프로시저는 모두 0보다 큰 정수 두 개를 더하는 일을 하는데, 인자에 1을 더하는 inc 프로시저와 인자에서 1을 빼는 dec 프로시저를 가져다 쓴다.

(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?

맞바꿈 계산법에 따라 두 프로시저가 (+ 4 5)를 계산하는 프로세스(과정)를 밝혀라.
이 프로세스는 반복하는가? 아니면 되도는가?

-------------------------------------------------------------------------

(inc (+ (dec a) b))

(+ 4 5)

(inc (+ (dec 4) 5))
(inc (inc (+ (dec 3) 5))))
(inc (inc (inc (+ (dec 2) 5))))
(inc (inc (inc (inc (+ (dec 1) 5)))))
(inc (inc (inc (inc (+ (dec 0) 5)))))
(inc (inc (inc (inc (5)))))
(inc (inc (inc (6))))
(inc (inc (7)))
(inc (8))
(9)

linear recursive process
선형 재귀 프로세스
-------------------------------------------------------------------------

(+ (dec a) (inc b))

(+ 4 5)

(+ (dec 4) (inc 5))
(+ (dec 2) (inc 7))
(+ (dec 1) (inc 8))
(+ (dec 0) (inc 9))
(9)

(+ 3 6)
(+ 2 7)
(+ 1 8)
(+ 0 9)
(9)

linear iterative process
선형 반복 프로세스

댓글 없음:

댓글 쓰기