A family of programming languages that represent code as nested lists enclosed in parentheses. Clojure is a Lisp dialect.
Read-Eval-Print Loop. An interactive session that reads an expression, evaluates it, prints the result, and repeats. Clojure developers use the REPL to build and test programs while they run.
A programming style built around functions that take values and return values, minimizing mutable state and side effects.
A piece of data that does not change after creation: a number, a string, or a persistent collection. Clojure defaults to values; you opt in to mutable state explicitly when you need it.
Persistent data structure
A collection that preserves its previous version when you modify it. Adding an element returns a new collection; the original remains unchanged. "Persistent" here means version-preserving, not stored to disk.
Difficulty in software caused by your tools and design choices, not by the problem itself. Contrasted with essential (or incidental) complexity, which is inherent to the problem domain.
Software Transactional Memory. A concurrency model that coordinates shared-state changes through transactions instead of locks.
A language designed to run on an existing platform rather than its own runtime. Clojure runs on the JVM, ClojureScript compiles to JavaScript, and ClojureCLR targets the .NET CLR.