Quickly turn complex problems into simple, working solutions using functional programming, safe concurrency, and the expressive tools of Clojure.
Struggling with unnecessary complexity, unmanaged state, and brittle data that's hard to change? Clojure combines the expressiveness of Lisp with the stability and performance of Java into a practical toolkit for creating simple, extensible applications. With immutable data structures, functional programming, and safe concurrency, Clojure makes it easier to write robust, reusable code. This definitive guide, written by members of the Clojure core team, introduces the language's essentials and then shows how to put everything together in real applications. This edition adds practical coverage of project tooling and interactive development and fresh examples of the latest Clojure features.
Build cleaner, more reliable software that can respond to changing requirements over time. Combine Clojure's tools for maximum effectiveness as you work with immutable data, functional programming, and safe concurrency to write programs that solve real-world problems.
Start by getting comfortable with Clojure's concise syntax and its interactive REPL, then quickly move into building with immutable collections and the powerful sequence abstraction. Gain practical fluency with functional techniques such as higher-order functions, recursion, partial application, and memoization. Beyond the basics, learn to manage state with Clojure's reference types, build open and extensible systems using protocols and multimethods, and unlock the power of macros for creating your own language features. Seamless Java interop lets you tap into the vast Java ecosystem without sacrificing clarity or safety.
This edition adds two new chapters on project tooling and interactive development, guiding you through modern workflows with tests, builds, editors, and the REPL at the center of your process. Learn how to set up projects, manage dependencies, and work productively in Clojure's unique interactive style. When you're finished, you'll be able to think in Clojure: express solutions with clarity, leverage concurrency safely, and build real-world applications that are simpler and more maintainable than you thought possible.
What You Need
- Java 8 or newer
- Clojure 1.12 or newer
About the Author :
Alex Miller has been a member of the Clojure core team since 2013 and is the coauthor of Clojure Brain Teasers and Clojure Applied. Alex is the creator or organizer of the Strange Loop, Lambda Jam, Clojure/west, and Clojure/conj conferences. In his free time he dabbles in music production, astronomy, and beekeeping.
Review :
If you are interested in learning the ins and outs of the Clojure language, Programming Clojure will provide you with a valuable resource. The book not only covers the basics of the language, but also builds on the basics to allow readers to understand and apply more advanced concepts like spec and macros.
-- Joy Clark, Consultant, innoQ Deutschland GmbH
Programming Clojure is an inspiration of Clojure knowledge and has furthered my understanding of the nuances of Clojure. One of the new sections includes a step-by-step on building an application that made me want to drop everything and code along.
-- Nola Stowe, CTO founder, Ruby Geek LLC
The third edition of Programming Clojure is an excellent resource for new and old Clojure programmers. It provides a thorough account of the language's rationale and features, including approachable explanations of more recent features like transducers and spec.
-- Michael Fogleman, Developer
This book is very effective at teaching Clojure's unique take on functional programming and data manipulation. It explains concepts clearly and covers the mechanics of nearly every part of the language, with helpful commentary that goes beyond the code.
-- Ghadi Shayban, Engineer, healthfinch