Clojure is an elegant language for a more civilized development experience. Clojure encourages the creation of simple software systems by being immutable by default and encouraging pragmatic approach to pure functional design.
Learn Clojure concepts as you experiment with the language
Revisit this section when you want to get a deeper understanding of the design and phylosophy of the Clojure approach to functional programming. These concepts will be easier to relate to as you practice Clojure and build software solutions.
Ten Big Ideas plus one
The key to understanding Clojure is ideas, not language constructs but the concepts that shape the language.
Each of these ideas is valuable by itself, not only in Clojure. Taken together, however, they beging to fill in the picture of why Clojure is changing the way many programmers think about software development.
- Extensible Data Notation
- Persistent Data Structures
- Dynamic Development
- Async Programming
- Logic query / Logic Programming
- Atomic Succession Model