Clojure is a dynamic programming language for the JVM. It is interactive, yet compiled, with a robust infrastructure for concurrency (STM). It is a functional dialect of Lisp, with a rich set of immutable, persistent data structures and a macro system.