SW 마에스트로 멘토님의 추천으로 SICP 를 공부중이다. 책에서 사용하는 언어는 Scheme이라고 하는 Lisp의 dialect인데, 지금까지 배운 언어들과는 꽤 다르지만 재밌는 언어다.
연습문제 1.11
tree recursion 에 관한 문제이다. 크게 어렵지는 않다.
(define (f n)
(if (> 3 n)
n
(+ (- n 1) (* 2 (f (- n 2))) (* 3 (f (- n 3))))))
(define (f-iter a b c counter n)
(if (= n counter)
a
(f-iter (+ counter (* 2 b) (* 3 c))
a
b
(+ counter 1)
n)))
(f 6)
(f-iter 2 1 0 2 6)
연습문제 1.12
파스칼의 세모꼴 수를 구하는 문제이다. recursive 프로세스로 구현하였다.
(define (p x y)
(if (or (= y 1) (= x y))
1
(+ (p (- x 1) (- y 1))
(p (- x 1) y))))
(p 5 3)