This book is the first definitive reference for the Clojure language, providing both an introduction to functional programming in general and a more specific introduction to Clojure's features. This book demonstrates the use of the language through examples, including features such as software transactional memory (STM) and immutability, which may be new to programmers coming from other languages. * Overview of functional programming and description of what sets Clojure apart from other languages * Detailed explanation of Clojure's special features * Examples of real-world tasks that are well-suited to Clojure's capabilities, starting with simple tasks and moving on to more complex applications What you'll learn * What Clojure is - more than just another Lisp * How to set up a Clojure environment * The structure and syntax of a Clojure program * Java interoperability * How to use Clojure for real-world tasks * Common idioms of Clojure code Who this book is for There are two audiences for this book: any technical person desiring to know what Clojure is and why they might want to use it, and any programmer desiring to learn and use the language. The goals of these two audiences mesh nicely, given that Clojure has several new, cutting-edge features that programmers are unlikely to have encountered before. Table of Contents * The Clojure Way * The Clojure Environment * Controlling Program Flow * Data in Clojure * Sequences * State Management * Namespaces and Libraries * Metadata * Multimethods and Hierarchies * Java Interoperability * Parallel Programming * Macros and Metaprogramming * Datatypes and Protocols * Performance.
Practical Clojure