Dialect of the Lisp programming language on the Java platform
Clojure
Paradigm
multi-paradigm:
agent-oriented[1]
concurrent[2][3]
functional[4]
logic[5]
macro[6]
pipeline[7]
Family
Lisp
Designed by
Rich Hickey
First appeared
2007; 17 years ago (2007)
Stable release
1.11.2[8]
/ 8 March 2024; 59 days ago (2024-03-08)
Typing discipline
dynamic
strong
Memory management
Garbage collection via a host (JVM, CLR, a JavaScript runtime such as V8 in case of ClojureScript or BEAM (see below)
Platform
Java
JavaScript
.NET
License
Eclipse Public
Filename extensions
.clj
.cljs
.cljr
.cljc
.cljd
.edn
Website
clojure.org
Dialects
ClojureScript, ClojureDart
Influenced by
C#
C++[9]
Common Lisp
Erlang
Haskell[10]
Java
ML
Prolog
Racket[11]
Ruby[12]
Scheme
Wolfram Language[13]
Influenced
Elixir
Hy
Janet[14]
LFE
Pixie[15]
Rhine[16]
Clojure Programming at Wikibooks
Clojure (/ˈkloʊʒər/, like closure)[17][18] is a dynamic and functional dialect of the Lisp programming language on the Java platform.[19][20]
Like most other Lisps, Clojure's syntax is built on S-expressions that are first parsed into data structures by a reader before being compiled.[21][17] Clojure's reader supports literal syntax for maps, sets and vectors along with lists, and these are compiled to the mentioned structures directly.[21] Clojure treats code as data and has a Lisp macro system.[22] Clojure is a Lisp-1 and is not intended to be code-compatible with other dialects of Lisp, since it uses its own set of data structures incompatible with other Lisps.[22]
Clojure advocates immutability and immutable data structures and encourages programmers to be explicit about managing identity and its states.[23] This focus on programming with immutable values and explicit progression-of-time constructs is intended to facilitate developing more robust, especially concurrent, programs that are simple and fast.[24][25][17] While its type system is entirely dynamic, recent efforts have also sought the implementation of a dependent type system.[26]
The language was created by Rich Hickey in the mid-2000s, originally for the Java platform; the language has since been ported to other platforms, such as the Common Language Runtime (.NET). Hickey continues to lead development of the language as its benevolent dictator for life.
^"Agents and Asynchronous Actions". Clojure.org. Retrieved 2019-07-07.
Clojure (/ˈkloʊʒər/, like closure) is a dynamic and functional dialect of the Lisp programming language on the Java platform. Like most other Lisps, Clojure's...
of the Clojure programming language. Clojure is a Lisp dialect built on top of the Java Virtual Machine. He also created or designed ClojureScript and...
Ruby programming language, but now also supports Java, Node.js, Scala, Clojure, Python, PHP, and Go. For this reason, Heroku is said to be a polyglot...
seeing use today in industry and education, including Common Lisp, Scheme, Clojure, Wolfram Language, Racket, Erlang, Elixir, OCaml, Haskell, and F#. Lean...
Forth Fortran Go Haskell Haxe (to bytecode or C++) Java (to bytecode) Clojure Scala Kotlin JOVIAL Julia (through JIT) LabVIEW, G Lisp Common Lisp Mercury...
agents, which are abstractions of objects that can message other agents. Clojure F# GOAL SARL Array programming (also termed vector or multidimensional)...
content. Users 140 million users monthly (2023) Launched 17 October 2008; 15 years ago (2008-10-17) Current status Active Written in Ruby Scala Clojure...
cross-compilation Boot, a Java build and dependency management tool written in Clojure boost.build For C++ projects, cross-platform, based on Perforce Jam Buck...
platform using JRuby. Quil is an interactive animation library for Clojure and ClojureScript based on Processing. The music video for "House of Cards" by...
can be used to write domain-specific languages. Similar to Kawa's and Clojure's mappings onto the Java virtual machine (JVM), Hy is meant to operate as...
metadata. Languages that support docstrings include Python, Lisp, Elixir, Clojure, Gherkin, Julia and Haskell. Documentation is supported at language level...
the widely used programming language Java, though it is compatible with Clojure and includes a Scala application programming interface (API). It is powered...
language Clojure (no longer in top 50, is one of 51–100, at one point at #47), a dynamic, and functional dialect of the Lisp programming language (ClojureScript...
constructs List Comprehensions across languages Axiom stream examples Clojure API documentation - for macro Implementation of a Lisp comprehension macro...
been designed for first-class use with JVM languages such as Java and Clojure. In its reference architecture, Datomic uses peers and transactors which...