Learning Clojure

For detailed coverage of Clojure, consult the language and API reference at clojure.org. Also see Clojure Programming.

Clojure (read as closure), is a powerful, lisp-1 programming language designed by Rich Hickey and designed to run on the Java Virtual Machine. This book shall provide a detailed introduction to the constructs of Clojure, and act as a tutorial through the features of the language.

Getting Started

History
A brief history of the Clojure language.
Installation
Learn how to install Clojure on Windows, Linux, and Mac
REPL
Learn how to launch the REPL execution system and the classic "Hello World" application

Basics

Basic Syntax
Describes the basics in how the applications you write will be interpreted
Coding Conventions
Quickly describes the generally accepted conventions for Clojure.
Functional Programming
The entities used to store data of various shapes
Namespaces
Identifies how to encapsulate a program from other programs
Basic Operations
Explains how use essential functions
Data Types
Explanation of basic data types in the Clojure language.
Data Structures
Explains how to use Clojure hash, list, and array data structures
Meta Data
Explaining meta data in the Clojure language.
Special Forms
Learn how to use several utility functions to support Clojure
Branching and Monads
How to implement imperative style into a functional language
Exception Handling
Responding to errors that can occur
Evaluation
How expressions are evaluated

Java Integration

Calling Java
Learn how to call Java functions from within Clojure
Building Jars
Learn how to take Clojure code and create a portable Java executable

Advanced Topics

Macros
Learn how to utilize the macro system Clojure uses
Concurrent Programming
Learn how to write programs that utilize concurrent execution
Leiningen
Learn the perfected Clojure build system
Reader Macros
Macros that control the way code is interpreted
Unit Testing
Learn how to write unit tests in Clojure

Unsorted sections

Multimethods and polymorphism
Collection functions
Destructuring
Atom