유연한 소프트웨어를 만드는 설계 원칙
정오표
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-old
와 checkers-new
는 sdf/abstracting-a-domain
디렉터리에 있고 efficient-generics-trie
와 efficient-generics-cached
는 sdf/efficient-generic-procedures
에 있다. 나머지는 향 이름과 sdf의 하위 디렉터리 이름이 동일함.
comments powered by Disqus