Learning Clojure/History

History
Lisp is one of the oldest of all programming languages, invented by John McCarthy in 1958. The original language spawned many variant dialects, the most predominant of which today are Common Lisp and Scheme. Clojure (pronounced "closure") is a new dialect of Lisp created by Rich Hickey. Like Scheme, Clojure is a functional dialect, meaning that it supports and encourages programming in a "functional style".

However, Clojure differs from older lisps in several important ways. Clojure code has much more syntactic sugar. For example, instead of typing (set 1 2 3), you can write #{1 2 3}. Clojure has borrowed from Python and Haskell its heavy reliance on dumb data structures: sets, maps, list, and vectors. Most of which have their own syntactic sugar. Clojure makes heavy use of vector data structures (similar to Java arrays and represented in Clojure with `[]'), preferring them to lists where possible for both aesthetic and performance reasons. Clojure also features complete interoperability with Java libraries.

To give you a taste of the language, here's a small example program in Clojure for correcting spelling (this is a translation into Clojure of Peter Norvig's Python spelling corrector): By the end of this document, you should be able to understand this code (with some help from the API reference).