Common Lisp 개발을 위해서 에디터를 Emacs를 사용해보자. 처음 사용해보는 에디터 Emacs는 기존 에디터들과 다르게 CL개발을 위해서 환경을 제공해준다. Emacs 윈도우 버전 : http://www.gnu.org/software/emacs/windows/Getting-Emacs.html#Getting-Emacs 맥 버전 ...
SICP 연습문제 1.11
n < 3 일 때 f(n) = n이고, n >= 3 일 때 f(n) = f(n-1) + 2f(n-2) + 3f(n-3)으로 정의한 함수가 있다. f의 프로시저를 되도는 프로세스를 만들고 반복 프로세스를 만들어 내는 프로시저도 만들어라. Recursive Process (define (f n) (if (&lt; n 3) n (+ ...
SICP 연습문제 1.10
다음은 애커만 함수를 나타낸 프로시저이다. (define (A x y) (cond ((= y 0) 0) ((= x 0) (* 2 y)) ((= y 1) 2) (else (A (- x 1) (A x (- y 1)))))) &amp;nbsp; (define (f n) ( A 0 n)) (define (g n) (A 1 n)) (defin...
SICP 연습문제 1.9
다음 두 프로시저가 반복하는 프로세스인지 되도는 프로세스인지 구별하고 각 프로시저의 프로세스 과정을 밝혀라. 프로시저 1 (define (+ a b) (if (= a 0) b (inc (+ (dec a) b)))) 프로시저 2 (define (+ a b) (if (= a 0) b (+ (dec a) (inc b)))) 우...
Java I/O Stream
I/O를 처리하는 방법 Byte Streams InputStream과 OutputStream은 8-bit로 입력과 출력을 한다 생성 입력 및 출력 자원 반환 FileInputStream in = null;FileOutputStream out = null;in ...
SICP 연습문제 1.8
cube root 를 위한 Newton’s method는 아래의 수식을 기반으로 한다. y의 값은 x의 cube root의 근사 값이고 다음 수식을 수행할때 마다 더욱 근사치에 가까운 근사 값으로 다가간다. 위의 수식을 이용해서 cube-root를 구현해라, 단, square-root procedure와 유사하게 cube-root를 구현해라. 결과...
SICP 연습문제 1.7
good-enough? 가 매우 작은 숫자의 square roots를 계산하는데 효과적이지 못 하다고 한다. 그리고 real computer에서 산술 연산은 제한된 정확도에서 수행이 된다, 이것 때문에 매우 큰 숫자를 테스트하는 것이 부적당하다고 한다. 그렇다면, 큰 숫자나 작은 숫자에서 테스트가 실패하는 경우를 찾아 보기로 했다. 값이 작을 경우 ...
SICP 연습문제 1.6
제곱 근을 구하기 위해서 뉴튼 법을 사용한다. 여기에 그 예제 소스가 있다. (define (sqrt-iter guess x) (if (good-enough? guess x) guess (sqrt-iter (improve guess x) x))) (define (improve guess x) (average guess (/ x guess))) ...
SICP 연습문제 1.5
applicative order evaluation과 normal-order evaluation의 차이를 묻는 문제이다. (define (p) (p)) (define (test x y) (if (= x 0) 0 y)) 위와 같이 2개의 프로시저를 정의한다. (test 0 (p)) 그리고 다음의 식 실행 시, applicative orde...
SICP 연습문제 1.4
combination에 연산자 자리에 compound expression이 다시 와도 규칙에 따라 식을 구할 수 있다. 다음의 식은 연습문제에 나온 식이다. (define (a-plus-abs-b a b) ((if (&gt; b 0) + -) a b)) 위의 식을 살펴 보면 ((if (> b 0) + -) a b)) 부분을 볼 ...