O'Reilly logo

The Joy of Clojure, Second Edition by Michael Fogus and Chris Houser

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Chapter 8. Macros

If you give someone Fortran, he has Fortran. If you give someone Lisp, he has any language he pleases.

Guy Steele[1]

1 Afterword in The Seasoned Schemer by Daniel P. Friedman and Matthias Felleisen (MIT Press, 1995).

This chapter covers

  • Data is code is data
  • Defining control structures
  • Macros combining forms
  • Using macros to control symbolic resolution time
  • Using macros to manage resources
  • Macros returning functions

Macros are where the rubber of “code is data” meets the road of making programs simpler and cleaner. To fully understand macros, you need to understand the different times of Clojure: read time, macro-expansion time, compile time, and runtime. Macros perform the bulk of their work at compile time. We’ll ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required