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

Imgur

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

정오표

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. 그 계획을 적용해서 모든 것이 잘 작동하게 만든다!

보충자료

장/절 향

장/절
§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