매크로

매크로 (Macros)

매크로는 Racket의 핵심 기능으로, 프로그램 안에서 파싱 단계에 개입해 새로운 구문 형태를 정의할 수 있게 해주는 메커니즘이에요. 이 문서는 Racket Reference에서 매크로를 다루는 전체 장(chapter)의 목차(index) 역할을 하며, 아래 나열된 각 주제를 통해 매크로의 각 측면을 자세히 배울 수 있습니다.

출처: Racket Reference

본문

The Racket Guide의 "Macros" 장에서 매크로를 소개합니다.

프로그램이 어떻게 파싱되는지에 대한 일반적인 정보는 "Syntax Model"을 참고하세요. 특히, "Expansion Steps" 하위 절은 파싱이 어떻게 매크로를 트리거하는지 설명하고, "Transformer Bindings"는 매크로 트랜스포머가 어떻게 호출되는지를 설명합니다.

이 장의 구성은 다음과 같습니다:

  • 12.1 패턴 기반 구문 매칭 (Pattern-Based Syntax Matching)
  • 12.2 구문 객체 내용 (Syntax Object Content)
    • 12.2.1 구문 객체 소스 위치 (Syntax Object Source Locations)
  • 12.3 구문 객체 바인딩 (Syntax Object Bindings)
  • 12.4 구문 트랜스포머 (Syntax Transformers)
    • 12.4.1 require 트랜스포머 (require Transformers)
    • 12.4.2 provide 트랜스포머 (provide Transformers)
    • 12.4.3 키워드 인자 변환 검사 (Keyword-Argument Conversion Introspection)
    • 12.4.4 포털 구문 바인딩 (Portal Syntax Bindings)
  • 12.5 구문 매개변수 (Syntax Parameters)
    • 12.5.1 구문 매개변수 검사 (Syntax Parameter Inspection)
  • 12.6 스플라이싱 본문으로 지역 바인딩 (Local Binding with Splicing Body)
  • 12.7 구문 객체 속성 (Syntax Object Properties)
  • 12.8 구문 테인트 (Syntax Taints)
  • 12.9 최상위 레벨 폼 확장 (Expanding Top-Level Forms)
    • 12.9.1 확장된 모듈에 대한 정보 (Information on Expanded Modules)
  • 12.10 구문 직렬화 (Serializing Syntax)
  • 12.11 파일 포함 (File Inclusion)
  • 12.12 구문 유틸리티 (Syntax Utilities)
    • 12.12.1 포맷된 식별자 만들기 (Creating formatted identifiers)
    • 12.12.2 패턴 변수 (Pattern variables)
    • 12.12.3 오류 보고 (Error reporting)
    • 12.12.4 사라진 사용 기록 (Recording disappeared uses)
    • 12.12.5 기타 유틸리티 (Miscellaneous utilities)
  • 12.13 페이즈와 스페이스 유틸리티 (Phase and Space Utilities)

더 알아보기