Clojure Brain Teasers (PragProg)

Hone your Clojure skills and validate your understanding as you explore the design decisions behind this data-driven functional programming language.

mmclobrain-500

Alex Miller @alexmiller and Lorilyn Jordan Miller

edited by Jacquelyn Carter @jkcarter

Challenge your knowledge of Clojure with 25 short Clojure teasers, sometimes with surprising results! Inspired by years of developer questions and feedback, these teasers are handpicked to clarify common points of confusion. Each code challenge illustrates Clojure’s elegant design, explaining how and why it works. Enjoy these simple exercises solo or with friends to find gaps in your knowledge, challenge assumptions, and gain valuable insights. Tackle the most common points of confusion Clojure developers encounter, become more efficient when writing and debugging, and better predict the outcomes of Clojure code. Regardless of your Clojure experience, you’re certain to learn something new.

You know Clojure, but do you really understand it? You may know the mechanics and idioms, but what about the deeper, implicit concepts driving the design? Discover and explore the real Clojure, testing and supplementing your understanding of why this data-driven functional programming language works the way it does.

You’ll start with the basic concepts such as numeric types, numeric promotion, and logical truth. But the backbone of Clojure is its focus on immutable data, centered around the Clojure collections. Learn about collection equality, polymorphism on nil, adding and finding elements in different collection types, and sorted collections. Explore Clojure’s evaluation model, including the Clojure reader, quoting, evaluation, and macro expansion. Finally, learn about the core library functions like case, concat, for, partial, and the details of type hinting, vars, and destructuring. Understand the peculiarities of these functions and how to apply them to your advantage in future programs.

Use these new insights to build your own concise, expressive, and flexible code. Don’t just use Clojure, master it.


Alex Miller has been a member of the Clojure core team since 2013 and is the co-author of Clojure Applied and Programming Clojure, Third Edition. Alex is the creator or organizer of the Strange Loop, Lambda Jam, Clojure/west, and Clojure/conj conferences.

L. Jordan Miller is a Staff Software Engineer at Nubank, Datomic Developer Advocate, and producer/host of the Lost In Lambduhhs podcast. Passionate about people, programming, and pedagogy, she’s a conference speaker, host, organizer, and reviewer for events such as Heart of Clojure, Strange Loop, Re:clojure, and Clojure Conj.


Don’t forget you can get 35% off with your Devtalk discount! Just use the coupon code “devtalk.com" at checkout :+1:

1 Like