What is Clojure?
Clojure ist eine dynamische Programmiersprache, die ein Dialekt oder eine Variante der Lisp-Programmiersprache ist. Es ist für allgemeine Zwecke konzipiert und kombiniert die interaktive Entwicklung und Zugänglichkeit einer Scripting language mit einer robusten und effizienten Infrastruktur für Multithread-Programmierung.
It is also a compiled language that compiles directly into the JVM bytecode while remaining fully dynamic.
Clojure was developed by Rich Hickey as a Lisp dialect that directly targets the Java Virtual Machine (JVM). Because of this, it shares Lisp's code-as-data philosophy and powerful macro system. It is primarily viewed as a functional programming language that has a number of immutable and persistent data structures.
Clojure also has a software transaction storage system when changeable state is required and a reactive agent system that ensures that multithreaded designs are correct and clean.
Clojure features include:
Tight Java integration where applications can be easily packaged and deployed to JVMs and other application servers
Functions are seen as prime objects
Dynamic development with a read-eval-print loop
The emphasis is on recursion and other higher order functions, as opposed to looping based on side effects
Provides immutable and persistent data structures such as hash maps, lists, and sets
The agent system, the dynamic var system and the software transaction memory allow simultaneous programming
Multimethods allow dynamic distribution of the values or types of any arguments