회사 동기들과 예정에도 없던 술을 한 잔 하고 집에 왔습니다. 세상은 빙빙 돌고 나도 돌고, 술 잔에 갇힌 생각들도 이리 저리 휘저어집니다. 방문을 열고 불을 켠 뒤, 어지럽혀진 옷가지들을 침대 한켠에 쌓아서 대충 놔둡니다. 뭐 어차피 방바닥에서 자니 크게 상관도 없습니다. 취기를 가라 앉히기 위해 차를 한 잔 마셔 봅니다....

SICP 연습문제 풀이 1.17 (define (double a) (* a 2)) (define (halve a) (/ a 2)) (define (mult a b)   (cond ((= b 0) 0)         ((even? b) (mult (double a) (halve b)))         (else (+ a (mult a (- b 1))))))

SICP 연습문제 풀이 (define (square x) (* x x)) (define (f b n)   (cond ((= n 0) 1)         ((= n 1) b)         ((even? n) (f (square b) (/ n 2)))         (else (* b (f b (- n...

SICP 연습문제 풀이 1.15 a. 12.15 을 3.0 으로 몇번 나눠야 그 절대값이 0.1 보다 작아지는가? 5 번 b. p 의 실행시간은 O(1) 이므로 문제의 사이즈가 얼마나 빠른 속도로 줄어드는지를 보면 된다. angle 값은 매번 3 으로 나눈 만큼 작아지므로 space 와 steps 은   이다.

이 문제는 사실 hint 에 주어진                         (1) 을 증명하면 되는 문제입니다. Fib(n) 이 가장 가까운 정수라는 말은 수식으로 표현하면,                        (2) 이 되는 데요.  (1) 식에서 값을 살펴보면...

파스칼 삼각형이 다음 처럼 이뤄져있다고 보면 1 01 1 01 2 1 01 3 3 1 01 4 6 4 1 0... 맨 오른쪽에 0 이 하나씩 있다고 치고 각 숫자는 자기 위의 숫자와 왼쪽 대각선위쪽의 숫자들의 합으로 결정된다고 볼 수 있다. f(0, 0) = 1, f(0, 1) = 0f(1,...

recursive process (define (f n)  (if (< n 3)      n      (+ (f (- n 1)) (* 2 (f (- n 2))) (* 3 (f (- n 3)))))) iterative process (define (f-iter a0 a1 a2 n)  (if (= n 0) a0      (f-iter a1 a2 (+...

실행 결과> (A 1 10) 1024 > (A 2 4) 65536 > (A 3 3) 65536 > Obviously, (f n) = 2n (g n) = (A 1 n)=>(A 0 (A 0 (A 0 ...(A 0 1)))...) 이 된다. (A 0 n) = 2n 이므로 위 식은 결국2 * 2 *...

(+ 4 5) 첫번째 define=>(if (= 4 0)     5     (inc (+ (dec 4) 5)))=>(inc (+ (dec 4) 5))) =>(inc (if (= (dec 4) 0)      5      (inc (+ (dec (dec 4) 5))))) =>(inc (inc (+ (dec (dec 4) 5)))) 이런 식으로 계속 되어...

요즘 부쩍 나태해지고 거만해진 자신을 봅니다. 머리가 굵어지면 숙일 줄을 알아야 하건만 쉬이 그러지 못하는 걸 보면 역시 못난 인간이네요. 처음 배우는 마음으로 다시 돌아가 볼려고 합니다. 자그마한 코드 몇 줄에 기뻐하고 빌드에 에러 없는 걸 감사히 여기던 그때의 초심으로 돌아가 봅니다. 작은 팁 하나를 고맙게 여기고 질문과 답변을 함에...