What Does Clojure Mean?
Clojure is a dynamic programming language that is a dialect, or variant, of the Lisp programming language. It is designed to be general-purpose and combines the interactive development and approachability of a scripting language with a robust and efficient infrastructure used for multithreaded programming.
It is also a compiled language that compiles directly into JVM bytecode while remaining completely dynamic.
Techopedia Explains Clojure
Clojure was developed by Rich Hickey as a dialect of Lisp that directly targets the Java Virtual Machine (JVM). Because of this, it shares the code-as-data philosophy and the powerful macro system of Lisp. It is predominantly considered a functional programming language that features a set of immutable and persistent data structures.
Clojure also has a software transactional memory system when a mutable state is required, and a reactive agent system, which ensures that multithreaded designs are correct and clean.
The features of Clojure include:
- Tight Java integration where applications are easily packaged and deployed to JVMs and other application servers
- Functions are considered first-class objects
- Dynamic development with a read-eval-print loop
- Emphasis is given to recursion and other higher-order functions as opposed to side-effect-based looping
- Provides immutable and persistent data structures such as hashmaps, lists and sets
- The agent system, dynamic var system and software transactional memory allows concurrent programming
- Multimethods allow dynamic dispatch on the values or types of any arguments