유연한 소프트웨어를 만드는 설계 원칙

Imgur

- 가격 검색 - 출판사 페이지 - 원서 페이지

정오표

p.5 "헌사" (2022-12-03)

p.5의 인용구는 헌사가 아니므로닙니다. "헌사"라는 표제를 삭제해야 합니다.

p.5 인용문 셋째 줄 "그들을" (2022-12-03)

(...) 대다수의 컴퓨터 과학자도 그렇게 주장한다. 그들을그들은 컴퓨터 프로그램들이 (...)

p.36 그림 1.1 부품 이름들 (2022-12-03)

p.37 "진동 소자" (2022-12-03)

이 체제의 모듈들은 각자 다른 모듈들(진동 소자발진기, 믹서, 필터, 증폭기 등)로 (...)

p.56 연습문제 2.2 후반부 누락 (2022-07-26)

(p.56 하단

(procedure-arity-min (procedure-arity +)) = 0
(procedure-arity-max (procedure-arity +)) = #f

아래에 다음 내용을 추가:)

또한, 역탄젠트(atan)를 계산하는 프로시저는 인수를 하나만 받을 수도 있고 두 개 받을 수도 있다.

(procedure-arity-min (procedure-arity atan)) = 1
(procedure-arity-max (procedure-arity atan)) = 2

조합자들이 이런 좀 더 복잡한 상황을 다룰 수 있도록 항수 처리 방식을 확장하면 유용할 것이다. 다음은 한 가지 접근 방식이다.

a. 좀 더 일반적인 항수를 사용하도록 조합자들을 확장하는 계획을 대략적이나마 수립한다. 항수들에 산술 연산을 적용할 수 없는 경우도 있음을 주의해야 한다. spread-combine의 재정식화를 위해 어떤 결정을 내려야 할까? 예를 들어, spread-combine의 프로시저 f, g, h에 어떤 종류의 제약을 가해야 할까?

b. 그 계획을 적용해서 모든 것이 잘 작동하게 만든다!

p.494~503 찾아보기 일부 색인어 순서 오류 (2022-12-12)

영문 찾아보기 항목들 전반에서, 예를 들어 analyze 항목이 analyze-amb ~ analyze-variable 항목 뒤에 있는 등으로 색인어들이 잘못 정렬되어 있습니다. (짐작하셨겠지만) 찾아보기를 만들 때 사용한 색인어 정렬 스크립트의 순서 비교 함수에 결함이 있었습니다.

보충자료

장/절 향

장/절
§2.1 combinators
§2.2 regular-expressions
§2.3 wrappers
§2.4.1 checkers-original
§2.4.2 checkers-new
§3.1 combining-arithmetics
§3.2 generic-procedures
§3.3 automatic-differentiation
§3.4.1 efficient-generics-trie
§3.4.2 efficient-generics-cached
§3.5 user-defined-types
§4.2 term-rewriting
§4.3 design-of-the-matcher
§4.4 unification
§4.5 pattern-matching-on-graphs
§5.1 generic-interpreter
§5.2 non-strict-arguments
§5.3 compiling-to-execution-procedures
§5.4 exploratory-behavior
§5.5 continuations
§5.5.3 continuations-to-amb
제6장 layers
§6.4 dependencies
제7장 propagation

checkers-oldcheckers-newsdf/abstracting-a-domain 디렉터리에 있고 efficient-generics-trieefficient-generics-cachedsdf/efficient-generic-procedures에 있다. 나머지는 향 이름과 sdf의 하위 디렉터리 이름이 동일함.


comments powered by Disqus