Clojure

Clojure

Modern Lisp on the JVM

Description

Changing one function in Java means recompiling and restarting the service, and one wrong lock around shared mutable objects means a midnight deadlock hunt. Clojure is a Lisp on the JVM where all data is immutable by default, so concurrent code no longer worries about who changed what.

Develop with a REPL connected to your running program, re-evaluate a function and it takes effect without a restart. It calls any Java library directly, deploys to existing JVM servers, and macros let you extend the syntax.

Features



Immutable data:Persistent collections.

REPL-driven:Change a running program.

Java interop:Use any Java library.

Concurrency:Atoms, agents, STM.

Code as data:Macros extend the language.

ClojureScript:Compile to JavaScript.