Clojure is a high level, dynamic functional programming language. Clojure is designed based on the LISP programming language and has compilers which makes it run on both Java and .Net runtime environment.
Before we talk about Clojure, let’s just have a quick description of LISP programming language. LISPs have a tiny language core, almost no syntax, and a powerful macro facility. With these features, you can bend LISP to meet your design, instead of the other way around. LISP has been there for a long time dating back to 1958.
Common LISP reads in an expression, evaluates it, and then prints out the result. For example, if you want to compute the value of a simple mathematical expression of 4+6 then you type in.
USER(1) (+ 4 6)
Clojure has the following high-level key objectives as a programming language.
It is based on the LISP programming language which makes its code statements smaller than traditional programming languages.
It is a functional programming language.
It focuses on immutability which is basically the concept that you should not make any changes to objects which are created in place.
It can manage the state of an application for the programmer.
It supports concurrency.
It embraces existing programming languages. For example, Clojure can make use of the entire Java ecosystem for management of the running of the code via the JVM.
The official website for Clojure is https://clojure.org/