Lisp’s macro facility allows you to define operators that are implemented by transformation

Lisp의 매크로 기능을 사용하면 변환에 의해 구현되는 연산자를 정의 할 수 있습니다

The definition of a macro is essentially a function that generates Lisp code—a program that writes programs.

매크로의 정의는 본질적으로 Lisp코드를 생성하는 함수이다.

From these small beginnings arise great possibilities, and also unexpected hazards.

이런 작은 시작에서 거대한 가능성이 생기고, 또 예기치 못한 위험도 발생한다.

Chapters 7–10 form a tutorial on macros.

챕터 7-10은 매크로 튜토리얼이다.

This chapter explains how macros work, gives techniques for writing and testing them, and looks at the issue of macro style

이 챕터에서는 매크로의 작동방식을 설명하고, 매크로를 작성하고 테스트하는 기술을 배우며, 매크로 스타일 문제를 살펴보자.

7.1 How Macros Work

Since macros can be called and return values, they tend to be associated with functions.

매크로는 호출되고 값을 리턴할 수 있어서, 함수와 연관되는 경향이 있다.

Macro definitions sometimes resemble function definitions, and speaking informally, people call do, which is actually a macro, a “built-in function.”

매크로는 종종 함수 정의와 비슷하다, 그리고 여담이지만, do 라는 기능이 있는데 이 녀석을 함수로 생각하는 사람들이 있다. (매크로다)

But pushing the analogy too far can be a source of confusion.

하지만 유추를 계속 밀어부치면 혼란이 올 것이다.

Macros work differently from normal functions, and knowing how and why macros are different is the key to using them correctly.