Abstract
While many of the ideas that originated in Lisp, from the conditional expression to garbage collection, have been incorporated into other languages, the one language feature that continues to set Common Lisp apart is its macro system. Unfortunately, the word macro describes a lot of things in computing to which Common Lisp’s macros bear only a vague and metaphorical similarity. This causes no end of misunderstanding when Lispers try to explain to non-Lispers what a great feature macros are.1 To understand Lisp’s macros, you really need to come at them fresh, without preconceptions based on other things that also happen to be called macros. So let’s start our discussion of Lisp’s macros by taking a step back and looking at various ways languages support extensibility.
To see what this misunderstanding looks like, find any longish Usenet thread cross-posted between comp.lang.lisp and any other comp.lang.* group with macro in the subject. A rough paraphrase goes like this: Lispnik: “Lisp is the best because of its macros!” Othernik: “You think Lisp is good because of macros?! But macros are horrible and evil; Lisp must be horrible and evil.”
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Rights and permissions
Copyright information
© 2005 Peter Seibel
About this chapter
Cite this chapter
Seibel, P. (2005). Macros: Standard Control Constructs. In: Practical Common Lisp. Apress. https://doi.org/10.1007/978-1-4302-0017-8_7
Download citation
DOI: https://doi.org/10.1007/978-1-4302-0017-8_7
Publisher Name: Apress
Print ISBN: 978-1-59059-239-7
Online ISBN: 978-1-4302-0017-8
eBook Packages: Professional and Applied ComputingProfessional and Applied Computing (R0)Apress Access Books