연습문제 1.12 문제를 잘못 이해해서 풀이를 포기하고 솔루션을 찾아봤는데, 성분의 합이 아닌 특정 위치의 성분이 어떤 값인지 구하는 문제였다. 솔루션을 본 상태에서 다시 짠 해답 function pascal(index, row) { return row === 1 ? 1 : index === 1 || index === row ? 1 : pascal(index -1, row -1) + pascal(index, row -1); } CS/SICP in JS 2023.02.10
연습문제 1.11 재귀 function f(n){ return n < 3 ? n : f(n-1) + 2 * f(n-2) + 3 * f(n-3); } 반복 function f_m(n) { return n < 3 ? n : f_iter(2, 1, 0, n); } function f_iter(a, b, c, count){ return count === 0 ? a : f_iter(a + 2 * b + 3 * c, a, b, count -1) } CS/SICP in JS 2023.02.10
연습문제 1.10 주어진 함수를 정의하면 A(x, y) = { 0 만일 y가 0이면 2 * y 만일 x가 0이면 2 만일 y가 1이면 A(x - 1, A(x, y -1))); 그밖의 경우 } 따라서 A(1,10)는 A(1, 10) A(0, A(1, 9)) 2 * A(1, 9) 2 * A(0, A(1,8)) ..... 2^10 A(2,4)는 A(2, 4) A(1, A(2,3)) A(1, A(1, A(2, 2)))) A(1, A(1, A(1, A(2, 1))))) A(1, A(1, A(1, 2)))) A(1, A(1, A(0, A(1, 1)))) A(1, A(1, A(0, 2)))) A(1, A(1, 4))) A(2, 4) -> A(1, A(1, 4)) -> A(1, 16) 2^16 A(3,3)는 A(3, 3) A(2, A(.. CS/SICP in JS 2023.02.10
연습문제 1.9 1번(재귀적) inc(plus(dec(4), 5))); inc(plus(3, 5))); inc(inc(plus(dec(3), 5))).... 2번(반복적) plus(4, 5) plus(3 ,6) plus(2, 7) CS/SICP in JS 2023.02.10