Clojure | |
---|---|
Paradigma | funcional |
Surgido em | 2007 |
Última versão | 1.10.0 |
Criado por | Rich Hickey |
Estilo de tipagem | forte, dinâmica |
Principais implementações | JVM, CLR, JavaScript |
Dialetos | Lisp, Scheme, Common Lisp |
Influenciada por | Lisp, Prolog, ML, Haskell, Erlang |
Influenciou | Elixir, Hy, Pixie, Rhine |
Licença | Eclipse Public License |
Extensão do arquivo | .clj, .cljs, .cljc, .edn |
Página oficial | clojure.org |
Clojure é um dialeto da linguagem de programação Lisp criado por Rich Hickey[1]. Clojure é uma linguagem de programação de propósito geral com ênfase em programação funcional[2]. É executada na Máquina Virtual Java (JVM) por padrão, mas existem versões alternativas para outros ambientes de execução, como Clojure CLR[3], que compila código para a plataforma .NET e ClojureScript[4], que compila código Clojure para JavaScript. Como outros Lisps, Clojure trata código como dados e tem um sistema de macros integrado. O processo de desenvolvimento atual é conduzido pela comunidade e supervisionado por Rich Hickey como seu ditador benevolente perpétuo[5] (BDFL em inglês).
Clojure incentiva imutabilidade e estruturas de dados imutáveis. Enquanto o seu sistema de tipos é totalmente dinâmico esforços recentes também têm procurado a implementação gradual de tipagem forte. Clojure incentiva programadores a serem explícitos sobre o gerenciamento de estado e identidade. Este foco em programação com valores imutáveis e explícitos no decorrer do tempo se destina a facilitar o desenvolvimento de programas mais robustos, especialmente os vários segmentos.
Clojure é utilizada com sucesso na indústria por empresas como Walmart, Puppet Labs[6] e outras empresas de software de grande porte. O suporte comercial para Clojure é fornecido pela Cognitect, que faz parte do grupo Nubank[7]. A última versão estável da linguagem Clojure é a 1.10, lançada em 17 de dezembro de 2018. A primeira versão estável foi a versão 1.0, lançada em 4 de maio de 2009. Clojure é um software livre disponível pela Eclipse Public License[8].
<ref>
inválida; não foi fornecido texto para as refs de nome :0