Behind every programming language lies a vision of how programs should be built. The vision
behind Clojure is of a radically simple language framework holding together a sophisticated
collection of programming features. Learning Clojure involves much more than just learning the
mechanics of the language. To really get Clojure you need to understand the ideas underlying
this structure of framework and features. You need this book: an accessible introduction to
Clojure that focuses on the ideas behind the language as well as the practical details of
writing code. Clojure attracts developers on the cutting edge and is arguably the best language
for learning to program in the functional style without compromise. But this comes with a steep
learning curve. Getting Clojure directly addresses this by teaching you how to think
functionally as it teaches you the language. You'll learn about Clojure's powerful data
structures and high-level functions but you'll also learn what it means for a language to be
functional and how to think in Clojure's functional way. Each chapter of Getting Clojure takes
a feature or two or three from the language explains the syntax and the mechanics behind that
feature so that you can make it work before digging into the deeper questions: What is the
thinking behind the feature? And how does it fit in with the rest of the language? In Getting
Clojure you'll learn Clojure's very simple syntax but you'll also learn why that syntax is
integral the way the language is constructed. You'll discover that most data structures in
Clojure are immutable but also why that leads to more reliable programs. And you'll see how
easy it is to write Clojure functions and also how you can use those functions to build complex
and capable systems. With real-world examples of how working Clojure programmers use the
language Getting Clojure will help you see the challenges of programming through the eye of
experienced Clojure developers. What You Need: You will need to some background in programming.
To follow along with the examples in the book you will need Java 6 or new Clojure 1.8 or 1.9
and Leiningen 2.