#lang quadwriter/markdown #:page-size "A3" #:page-orientation "wide" #:column-count 3 #:column-gap 24 #:line-align "justify" #:line-wrap "best" #:page-margin-left 200 #:page-margin-right 100 A _macro_ is a syntactic form with an associated _transformer_ that _expands_ the original form into existing forms. To put it another way, a macro is an extension to the Racket compiler. Most of the syntactic forms of `racket/base` and `racket` are actually macros that expand into a small set of core constructs. Like many languages, Racket provides pattern based macros that make simple transformations easy to implement and reliable to use. Racket also supports arbitrary macro transformers that are implemented in Racket — or in a macro-extended variant of Racket. This chapter provides an introduction to Racket macros, but see [_Fear of Macros_](http://www.greghendershott.com/fear-of-macros/) for an introduction from a different perspective. A _macro_ is a syntactic form with an associated _transformer_ that _expands_ the original form into existing forms. To put it another way, a macro is an extension to the Racket compiler. Most of the syntactic forms of `racket/base` and `racket` are actually macros that expand into a small set of core constructs. Like many languages, Racket provides pattern based macros that make simple transformations easy to implement and reliable to use. Racket also supports arbitrary macro transformers that are implemented in Racket — or in a macro-extended variant of Racket. This chapter provides an introduction to Racket macros, but see [_Fear of Macros_](http://www.greghendershott.com/fear-of-macros/) for an introduction from a different perspective. A _macro_ is a syntactic form with an associated _transformer_ that _expands_ the original form into existing forms. To put it another way, a macro is an extension to the Racket compiler. Most of the syntactic forms of `racket/base` and `racket` are actually macros that expand into a small set of core constructs. Like many languages, Racket provides pattern based macros that make simple transformations easy to implement and reliable to use. Racket also supports arbitrary macro transformers that are implemented in Racket — or in a macro-extended variant of Racket. This chapter provides an introduction to Racket macros, but see [_Fear of Macros_](http://www.greghendershott.com/fear-of-macros/) for an introduction from a different perspective. A _macro_ is a syntactic form with an associated _transformer_ that _expands_ the original form into existing forms. To put it another way, a macro is an extension to the Racket compiler. Most of the syntactic forms of `racket/base` and `racket` are actually macros that expand into a small set of core constructs. Like many languages, Racket provides pattern based macros that make simple transformations easy to implement and reliable to use. Racket also supports arbitrary macro transformers that are implemented in Racket — or in a macro-extended variant of Racket. This chapter provides an introduction to Racket macros, but see [_Fear of Macros_](http://www.greghendershott.com/fear-of-macros/) for an introduction from a different perspective. A _macro_ is a syntactic form with an associated _transformer_ that _expands_ the original form into existing forms. To put it another way, a macro is an extension to the Racket compiler. Most of the syntactic forms of `racket/base` and `racket` are actually macros that expand into a small set of core constructs. Like many languages, Racket provides pattern based macros that make simple transformations easy to implement and reliable to use. Racket also supports arbitrary macro transformers that are implemented in Racket — or in a macro-extended variant of Racket. This chapter provides an introduction to Racket macros, but see [_Fear of Macros_](http://www.greghendershott.com/fear-of-macros/) for an introduction from a different perspective. A _macro_ is a syntactic form with an associated _transformer_ that _expands_ the original form into existing forms. To put it another way, a macro is an extension to the Racket compiler. Most of the syntactic forms of `racket/base` and `racket` are actually macros that expand into a small set of core constructs. Like many languages, Racket provides pattern based macros that make simple transformations easy to implement and reliable to use. Racket also supports arbitrary macro transformers that are implemented in Racket — or in a macro-extended variant of Racket. This chapter provides an introduction to Racket macros, but see [_Fear of Macros_](http://www.greghendershott.com/fear-of-macros/) for an introduction from a different perspective. A _macro_ is a syntactic form with an associated _transformer_ that _expands_ the original form into existing forms. To put it another way, a macro is an extension to the Racket compiler. Most of the syntactic forms of `racket/base` and `racket` are actually macros that expand into a small set of core constructs. Like many languages, Racket provides pattern based macros that make simple transformations easy to implement and reliable to use. Racket also supports arbitrary macro transformers that are implemented in Racket — or in a macro-extended variant of Racket. This chapter provides an introduction to Racket macros, but see [_Fear of Macros_](http://www.greghendershott.com/fear-of-macros/) for an introduction from a different perspective. A _macro_ is a syntactic form with an associated _transformer_ that _expands_ the original form into existing forms. To put it another way, a macro is an extension to the Racket compiler. Most of the syntactic forms of `racket/base` and `racket` are actually macros that expand into a small set of core constructs. Like many languages, Racket provides pattern based macros that make simple transformations easy to implement and reliable to use. Racket also supports arbitrary macro transformers that are implemented in Racket — or in a macro-extended variant of Racket. This chapter provides an introduction to Racket macros, but see [_Fear of Macros_](http://www.greghendershott.com/fear-of-macros/) for an introduction from a different perspective.