SICP 문제 1.9
SICP 2024. 5. 25. 23:56function plus(a, b) {
return a == 0 ? b : inc(plus(dec(a), b))
}
function plus(a, b) {
return a == 0 ? b : plus(dec(a), inc(b));
}
1 증가하는 함수 inc와 1 감소하는 함수 dec를 사용하여 plus(4, 5)를 전개한 과정의 차이는?
함수 1.
plus(4, 5)
= inc(plus(3, 5))
= inc(inc(plus(2, 5)))
= inc(inc(inc(plus(1, 5))))
= inc(inc(inc(inc(plus(0, 5)))))
= inc(inc(inc(inc(5))))
= inc(inc(inc(6)))
= inc(inc(7))
= inc(8)
= 9
함수 2.
plus(4, 5)
= plus(3, 6)
= plus(2, 7)
= plus(1, 8)
= plus(0, 9)
= 9
각 함수의 전개 과정을 보면 함수 1은 재귀적 과정이고 함수2 는 반복적 과정임을 알 수 있다.
SICP 거듭제곱 (0) | 2024.05.27 |
---|---|
SICP 트리 재귀 (0) | 2024.05.26 |
SICP: 반복과 재귀 (0) | 2024.05.22 |
SICP: 1장 2 함수와 과정 (0) | 2024.05.22 |
SICP: 뉴턴 방법으로 제곱근구하기 (0) | 2024.05.20 |