Scheme macros are transformations on the source of a scheme program which happen at "compile" time. They allow you to introduce
New binding constructs (i.e. with-slots, a macro which allows you to access the slots of an object within its body by name instead of writing (slot-ref obj 'slot))
New control constructs (i.e. the eager comprehensions of SRFI-42).
New "little-languages" (i.e. the make-like language found in PLT's (lib "make.ss" "make") collection).
The following recipes demonstrate some uses of macros. For an introduction to the writing of macros, please also see GettingStartedMacros; some additional macros can be found in IdiomChapter.