Chapter 11. More macros and DSLs

This chapter covers

  • Anaphoric macros
  • Shifting computation to compile time
  • Macro-generating macros
  • Designing, writing, and optimizing domain-specific languages in Clojure

This final chapter is about what many consider the most powerful feature of Clojure. John McCarthy, the inventor of the Lisp programming language, once said that Lisp is a local maximum in the space of programming languages.[1] Clojure macros make it possible to do arbitrary code transformations of Clojure code, using Clojure itself. No programming language outside the Lisp family can do this in such a simple way. This is possible because code is data.

1

History of Lisp (paper presented at the first History of Programming Languages conference, ...

Get Clojure in Action, Second Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.