Clojure is modern dialect of programming language Lisp. It is a universal language, which supports functional programming. It focuses mainly on simplifying the multi-threaded app development. For its run uses runtime environment JVM or CLR. It sticks to the philosophy of a code, which acts as data and implements sophisticated Lisp macrosystem.
Clojure is modern dialect of programming language Lisp. It is a universal language, which supports functional programming. It focuses mainly on simplifying the multi-threaded app development. For its run uses runtime environment JVM or CLR. It sticks to the philosophy of a code, which acts as data and implements sophisticated Lisp macrosystem.
Rich Hickey decided to develop Clojure because he needed modern Lisp, which would cooperate with the expanded Java platform and which would be designed for multi-threaded app development.
Clojure uses concept of identities for the solution of concurrency control. Those we can imagine as series at the time of invariant states. Regarding to the fact, that these states have immutable values, it is possible to operate random number of threads in parallel above them and the concurrency control then rests in managing transitions from one state to another. For that purpose, Clojure provides four changeable reference types, from which each has clear semantics for the definition of transitions among individual states.
As Lisp, the Clojure syntax is built on s-expressions, which are firstly taken apart on a level of data structures and then compiled. Clojure simultaneously supports literals for structures, as e. g. lists, maps, sets or fields. Those are then transmitted to the compiler as they are. Clojure is not designed so it would be compatible with other Lisp dialects.
Macros play an important role in Clojure. It is a construction, which are in arguments transmitted by s-expressions, from which is then random code built. The code is then executed. Maker system is in Clojure similar to the concept of the Common Lisp code.