유닛
유닛 (Units)
유닛(unit)은 프로그램을 개별적으로 컴파일하고 재사용할 수 있는 컴포넌트로 조직해 주는 Racket의 모듈성 메커니즘이에요. 서명(signature)으로 import/export를 묶어 두고, 서로 맞는 유닛들을 연결(link)해 더 큰 유닛을 만들 수 있습니다.
본문
*유닛(unit)*은 프로그램을 개별적으로 컴파일하고 재사용할 수 있는 컴포넌트로 조직해요. 유닛의 import와 export는 *서명(signature)*으로 묶이는데, 서명에는 런타임 값의 자리표시자(placeholder) 외에 "정적" 정보(매크로 같은 것)도 포함될 수 있어요. 서로 적절히 맞는 서명을 가진 유닛들은 *연결(link)*되어 더 큰 유닛을 만들 수 있고, import가 없는 유닛은 *호출(invoke)*되어 본문을 실행할 수 있습니다.
( require racket/unit ) — 패키지: base
이 절에서 문서화한 바인딩은 racket/unit과 racket 라이브러리가 제공하지만, racket/base는 제공하지 않아요. racket/unit 모듈 이름은 #lang과 함께 언어 이름으로 쓸 수 있습니다(Single-Unit Modules 참조).
이 절은 다음 하위 절들로 구성됩니다:
- 7.1 유닛 만들기 (Creating Units)
- 7.2 유닛 호출하기 (Invoking Units)
- 7.3 유닛 연결하기와 복합 유닛 만들기 (Linking Units and Creating Compound Units)
- 7.4 추론된 연결 (Inferred Linking)
- 7.5 문맥에서 유닛 생성하기 (Generating A Unit from Context)
- 7.6 구조적 매칭 (Structural Matching)
- 7.7 서명 문법 확장하기 (Extending the Syntax of Signatures)
- 7.8 유닛 유틸리티 (Unit Utilities)
- 7.9 유닛 계약 (Unit Contracts)
- 7.10 단일 유닛 모듈 (Single-Unit Modules)
- 7.11 단일 서명 모듈 (Single-Signature Modules)
- 7.12 변환기 헬퍼 (Transformer Helpers)