『컴퓨터 프로그램의 구조와 해석』의 정오표입니다.
원서인 『Structure and Interpretation of Computer Programs』의 정오표는 여기입니다.
오탈자는 저희 메일(insight@insightbook.co.kr)로 내용을 보내주시면 역자의 확인을 거쳐 즉시 반영토록 하겠습니다.
netionics(http://netionics.myid.net/) 님,
확인하신 오탈자를 저희 메일로 보내주시면, 역자의 확인을 거쳐 바로 반영하겠습니다. 아무래도 이 페이지는 여러 독자분들이 이용하시는 곳이라, 저희와 역자분께서 '공식'적으로 확인한 사항만 반영하게 되니, 양해 바랍니다.
34쪽 연습문제 1-8 (이병준 님 http://www.buggymind.com/72)
(x + y^2 + 2y) / 3
( (x / y^2) + 2y) / 3
47쪽 연습문제 1-9 (1쇄 역주 추가)
(define (+ a b)
(if (= a 0)
b
(inc (+ (dec a) b))))
(역주) 이 부분을 실제 실행해보면 무한루프가 발생한다. + 연산이 정의되지 않았다는 가정 하에 이해를 돕기 위해 저자가 일부러 그렇게 했기 때문이다.
54쪽 연습문제 1-11 (이병준 님 http://www.buggymind.com/73)
f(n)=(n-1)+2f(n-2)+3f(n-3)
f(n)=f(n-1)+2f(n-2)+3f(n-3)
59쪽 연습문제 1.16 2행 (NoSyu 님)
반복 프로세스
62쪽 7행 (NoSyu 님)
이 알고리즘은, a를 b로 나눈 나머지가 r일 때 a와 b의 최대 공약수가 b와 r의 최대 공약수가...
63쪽 주석 밑에서 2행 (NoSyu 님)
b_{k-1} >= Fib(k-1)이고 b_k ...
65쪽 7행 (NoSyu 님)
find-divisor를 끝내는 조건은 n이 소수가 아니면 (루트 n)보다 작거나 같은...
89쪽 본문 둘째 문단에서 (배대연 님)
y3 = x / y2 = x / (x / y1) = y1
159쪽 연습문제 2.39 코드 4행 (NoSyu 님)
fold-left (lambda (x y) <??>) nil sequence)
176쪽 연습문제 2.46 2행 (NoSyu 님)
벡터를 짜맞추는 연산 make-vect와 벡터에서 좌표를 골라내는 연산...
176쪽 연습문제 2.46 수식 마지막 행 (NoSyu 님)
s·(x, y) = (sx,sy)
179쪽 둘째 코드 마지막 행 (NoSyu 님)
(make-vect 0.0 0.0)) ; edge2의 새 끝점
190쪽 3~4행 (NoSyu 님)
예컨데, 덧셈 식이라면 더하임수augend(첫째 마디)나 덧수addend(둘째 마디)를 뽑아낼 수 있어야 한다.
196쪽 주석 37 4행(NoSyu 님)
어떤 집합 S T와 물체 x가 있다고 할 때, (element-of-set? x (union-set S T))는 (or ...
196쪽 주석 37 7행(NoSyu 님)
어떤 물체 x가 있다고 할 때, (element-of-set? x '())
200쪽 6행(NoSyu 님)
가장 작은 원소이기 때문에, x1이 set2의 원소가 아니어서 교집합 원소가 되지 못...
220쪽 연습문제 2.71 1행(NoSyu 님)
글자 n개를 위한 허프만 나무가 있고, 글자마다 빈도가 1, 2, 4, ...
225쪽 둘째 문단 6행 (김남형 님)
기와 각도를 받아서 복소수를 만들어 내는 make-from-mag-ang라고
226쪽 아래쪽 공식 1행(NoSyu 님)
x = r cos A r = √(x² + y²)
257쪽 12행 (NoSyu 님)
그 연산이 그 데이터 타입에 곧바로...
257쪽 그림 (김남형 님)
정수 → 유리수 → 실수 → 복소수
278쪽 마지막 문단 1행 (NoSyu 님)
더 정확하게 설명하면, P와 Q가 다항식이고, O₁을 P의 차수(...), O₂를 Q의 차수라 하자. 또한 c가 Q의 첫 계수라 하자.
278쪽 마지막 행 (NoSyu 님)
그 나머지를 가짜 나머지pseudoremainder라고도 한다.
371쪽 그림 3.28 가장 오른쪽 상자
a1 * a2 = s
a1 + a2 = s
372쪽 첫 번쩨 코드 3행 (김남형 님)
(celsius-fahrenheit-converter C F5)
(celsius-fahrenheit-converter C F)
390쪽 그림 3.30 폴 바로 아래 동그라미 (김남형 님)
100원
5원
390쪽 그림 3.30 개인 계좌(Bank2) 바로 아래 동그라미
100원
300원
490쪽 연습문제 4.8 바로 윗 문장 (김남형 님)
그게 아니라면, let*를 let에서 이끌어낸 식으로 처리하지 않고 별로도 처리하는 게 맞는가?
그게 아니라면, let*를 let에서 이끌어낸 식으로 처리하지 않고 별도로 처리하는 게 맞는가?
521쪽 역주 31 밑에서 2행 (김남형 님)
snarf down : 주인 허락이 ...
523쪽 연습문제 4.26 5행 (김남형 님)
와 엮어 쓸 수 없는 프로시저가 ...
와 엮어 쓸 수 있는 프로시저가 ...
601쪽 셋째 문단 3행 (김남형 님)
보기를 들어, 패턴 (?x ?x)와 ((a ?y c) (ab ?z))를 동일화한다 치면, ...
보기를 들어, 패턴 (?x ?x)와 ((a ?y c) (a b ?z))를 동일화한다 치면, ...
611쪽 두 번째 문단 밑에서 3행 (김남형 님)
달리 말하자면 논리 프로그래밍 언어에서 not이라는 이른바 닫힌 ...
달리 말하자면 논리 프로그래밍 언어에서 not은 이른바 닫힌 ...
614쪽 연습문제 4.69 6행 (김남형 님)
이를 가지고 ((great. ?rel) ?x ?y)라는 관계를 ...
이를 가지고 ((great . ?rel) ?x ?y)라는 관계를 ...
636쪽 1~2행 (김남형 님)
?symbol 같은 꼴로 식 속에 들어 있는 패턴 변수를 (?symbol) 꼴로 바꾸기 위해서
?symbol 같은 꼴로 식 속에 들어 있는 패턴 변수를 (? symbol) 꼴로 바꾸기 위해서
650쪽 밑에서 6행 (김남형 님)
화살표를 선으로 보고, X 단추를 스위치로 ...
화살표를 전선으로 보고, X 단추를 스위치로 ...
671쪽 연습문제 5.6 1행 (김남형 님)
Ben Bitdiddle은 피보나치 기계 제어기가 save와 restore 명령을 처리한다는 ...
Ben Bitdiddle은 피보나치 기계 제어기가 부차적인 save와 restore 명령을 처리한다는 ...
674쪽 5.2.1 5행 (김남형 님)
make-new-machine으로 만든 기본적 모형은 본질적으로 ...
677쪽 그림 5.13 9-10행 들여쓰기 (김남형 님)
(register-table)
(list (list 'pc pc) (list 'flag flag))))
(register-table)
(list (list 'pc pc) (list 'flag flag))))
679쪽 5.2.2 6행 (김남형 님)
명령의 실행 과정과 분석을 분리하여 ...
684쪽 코드 8-10행 들여쓰기 (김남형 님)
(make-operation-exp
value-exp machine lables operations)
(make-primitive-exp
(car value-exp) machine labels))))
(make-operation-exp
value-exp machine lables operations)
(make-primitive-exp
(car value-exp) machine labels))))
692쪽 연습문제 5.11 b. 1-2행 (김남형 님)
b. (restore y)는 스택에 마지막으로 저장한 값을 y에 둔다. 오로지 y에 저장했다는 가정하에서다. 하지만 y에 저장한 값이 아니라면 잘못됐다고 나타낸다.
b. (restore y)는 스택에 마지막으로 저장한 값을 y에 둔다. 하지만 이것은 마지막으로 y 의 값을 스택에 저장한 경우에만 그러하며, 다른 레지스터가 y 다음에 스택에 값을 저장한 경우에는 잘못되었다고 알린다.
692쪽 연습문제 5.11 c. 1-2행 (김남형 님)
c. (restore y)는 y가 마지막으로 저장한 값을 y에 둔다. 다른 레지스터가 y 다음에 저장하고 꺼내지 않았다는 것은 개의치 않는다.
c. (restore y)는 마지막으로 저장한 y의 값을 y에 둔다. 다른 레지스터가 y 다음에 스택에 값을 저장하고 아직 꺼내지 않았더라도 개의치 않는다.
636쪽 1~2행 (김남형 님)
?symbol 같은 꼴로 식 속에 들어 있는 패턴 변수를 (?symbol) 꼴로 바꾸기 위해서
?symbol 같은 꼴로 식 속에 들어 있는 패턴 변수를 (? symbol) 꼴로 바꾸기 위해서
698쪽 4행 (김남형 님)
실행기 내부에서 필요한 데이터도 들어간다.
679쪽 5.2.2 6행 (김남형 님)
명령의 실행 과정과 분석을 분리하여 ...
710쪽 코드 5행 (김남형 님)
(assign relocate-continue (label reassign-root))
742쪽 타깃과 연결 2행 (김남형 님)
타깃은 식을 번역한 값을 돌려줄 레지스터가 어떤 것인지 알려준다.
743쪽 밑에서 둘째 문단 2행 (김남형 님)
복합 식 계산에서 부분 식을 계산해 전체 식을 계산했듯이,
757쪽 코드 7-10행 들여쓰기 (김남형 님)
(car operand-codes)
(make-instruction-sequence '(val) '(argl)
'((assign argl (op list) (reg val)))))))
(append-instruction_sequences
(car operand-codes)
(make-instruction-sequence '(val) '(argl)
'((assign argl (op list) (reg val)))))))
757쪽 코드 13-16행 들여쓰기기 (김남형 님)
code-to-get-last-arg
(code-to-get-rest-args
(cdr operand-codes))))))))
(preserving '(env)
code-to-get-last-arg
(code-to-get-rest-args
(cdr operand-codes))))))))
758쪽 코드 3-5행 들여쓰기 (김남형 님)
(car operand-codes)
(make-instruction-sequence '(val argl) '(argl)
(preserving '(argl)
(car operand-codes)
(make-instruction-sequence '(val argl) '(argl)
758쪽 코드 10-12행 들여쓰기 (김남형 님)
code-for-next-arg
(code-to-get-rest-args (cdr operand-codes))))))
(preserving '(env)
code-for-next-arg
(code-to-get-rest-args (cdr operand-codes))))))
784쪽 주석48 1행 (김남형 님)
번역된 프로시저도 기본 프로시저가 아닌 복합 프로시저다.
(1)
(
