먹고살기 위해 SICP공부를 끝내지 못한 채로 LISP 공부를 시작하게 되었다. visual LISP 위주로 공부해야 할 듯 싶다. scheme 에는 drScheme 이라는 참 고마운 IDE가 있어서 잘 사용했는데, LISP은 대체 뭘로 IDE를 삼아야 할지 막막하기만 하다. LISPWORK나 ALE.....
Q3 ? 3개의 제곱 모든 자연수는 네개의 자연수(0을 포함) 제곱의 합으로 표현 될 수 있다. 예를 들어 3 = 12 + 12 + 12 + 02 31 = 52 + 22 + 12 + 12 그리고 어떤 자연수는 세개의 자연수(0을 포함) 제곱의 합으로 표현 될 수 있다. 예를 들어 3 = 12 + 12 + 12 17 = 02 .....
주어진 양수들 중에서 다음과 같은 조건을 만족하는 조합을 Triple이라고 하며 가능한 모든 Triple의 수를 출력하라. Triple : x + y = z 예를 들어 (1,2,3)은 Triple이고 (4,5,6)은 Triple이 아니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 .....
오로지 수와 산술 연산만으로 양의 정수 쌍도 표현해보자. 정수 a, b쌍을 2a3b로 나타낼 때, 이에 알맞은 cons, car, cdr 프로시저를 정의해 보라. 문제가 뭘 말하는 건지는 잘 모르겠지만 일단은 풀어보았다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1.....
아래는 프로시저르 쌍을 표현하는 다른 방법이다. 이런 표현방법으로, 어떤 물체 x와 y가 있을 때 (car (cons x y)) 한 값이 x 임을 밝혀보라. 여기서 cdr를 어떻게 정의 할 수 있는가? (귀띔: 이렇게 정의한 쌍이 올바로 돌아간다는 것을 따져보기 위해서 1.1.5절의 .....
평면에 선분을 긋는 문제를 생각해 보자. 모든 선분은 시작 점과 끝 점의 쌍으로 나타낼 수 있다. 두 점을 짜맞춰 선분을 만들어 내는 make-segment와 선분에서 두 끝점을 골라내는 start-segment, end-segment를 정의하라. 또한, 점도 x좌표를 나타내는 수와 y좌표를 .....
양수뿐 아니라 음수까지 다룰 수 있는 make-rat을 정의하라. 새 make-rat은, 유리수가 양수라면 분자와 분모 모두 양수이고, 유리수가 음수라면 분자만 음수가 되도록 처리해야 한다. 2장을 시작하는 간단한 문제. 분모가 0보다 작을때 분모 분자 각각에 -1 을 곱해.....
이 장에서 설명한 여러 수 계산법은 반복하여 고치기(iterative improvement)라 하는 더 일반적인 방법에 바탕을 둔다. 무엇을 반복해서 고친다는 말은 이런 뜻이다. 어떤 값을 얻고자 할 때, 처음에 그 값을 어림잡은 어떤 값에서 시작하되 어떤 계산 과정을 거쳐서.....
1.3.3절에서 곧바로 y|→x/y 함수의 고정점을 얻으려고 할 때 함수 값이 고정점에 다가가지 못하고 들쑥날쑥해서, 이 값을 평균내어 잠재워서 풀었다 이와 비슷하게, y|→x/y2함수의 고정점을 구하여 세제곱근을 계산할 때에도 평균내어 잦아들게 할 수 있다. 하지만.....
f가 수를 계산하는 함수고 n이 0보다 큰 정수일 때, n번 f하는 함수는 x를 받아 f(f(f(f..(f (x)))) 하는 함수다. 이를테면, f 가 x |→ x + 1일때 n번 f한 함수는 x |→ x + n 이다. f가 제곱 함수면, n번 f한 함수는 인자의 2n 값을 구한다. f프로시저와 0보다 큰 .....
f 와 g가 모두 인자 하나를 받는 프로시저라 하자. g와 f의 합성 (composition) 함수는 x |→ f(g(x))로 정의한다. 두 프로시저를 합성하는 프로시저 compose를 정의하라. 예를 들어 inc가 인자에 1을 더하는 함수라면 다음 결과가 나온다. ((compose square inc) 6) .....
인자 하나 받는 프로시저를 인자로 받아, 그 프로시저를 두 번 연거푸 계산하는 프로시저를 내놓도록, 프로시저 double 을 짜 보자.예컨데 inc가 인자에 1을 더하는 프로시저라면 (double inc) 는 2를 더하는 프로시저가 된다. 다음 식의 값은 얼마인.....
삼차 방정식 x3 + ax2 + bx+ c 의 해에 가까운 값을 구하기 위하여 newtons-method로 다음 식을 계산한다고 할 때, 이 식에서 쓰는 프로시저 cubic을 짜보라. (newtons-method (cubic a b c) 1) 아주 있는 그대로 식만 만들면 된다. 1 2 3 4 5 6 7.....
탄젠트 함수를 연속 분수로 나타내면 다음과 같다. 이 정의는 독일의 수학자 요한 하인리히 람베르트 (j . h. Lambert) 가 1770년 발표한 것이다. x tan x = ───────── x2 1-──── x3 3- ─── 5.. 여기에서 x는 라디안 값이다. 람베르트 식으로 탐젠.....