Browse Clojure Foundations for Java Developers

Miscellaneous Terms

Extra terms that show up across the ecosystem: macros, transducers, protocols, and other recurring concepts.

Some terms don’t fit neatly into one bucket but still show up often in Clojure discussions and libraries.

Use this section when you hit a term in the ecosystem and want a short, practical definition before diving back into the real code.

In this section

  • Homoiconicity
    What homoiconicity means in Clojure, why code-as-data matters, and how Java developers should connect it to macros and metaprogramming.
  • Macros and Macro Expansion
    What Clojure macros actually do, how macro expansion works, and why Java developers should prefer functions unless code transformation is truly needed.
  • Lazy Evaluation
    What laziness means in Clojure sequences, where it helps, and what Java developers must watch for around chunking, side effects, and retained heads.
Revised on Friday, April 24, 2026