Clojure
linguaggio di programmazione
AutoreRich Hickey
Data di origine2007
Ultima versione1.12.5 (12 maggio 2026)
Utilizzofunzionale, concorrente
Paradigmifunzionale
Tipizzazioneforte, dinamica
Estensioni comuni.clj, .cljs, .edn
Influenzato daLisp, Erlang, Haskell, ML, Prolog, Scheme, Java, Ruby
Ha influenzatoElixir
Implementazione di riferimento
Sistema operativoMultipiattaforma
LicenzaEclipse Public License
Sito webclojure.org/

In informatica Clojure è un dialetto del linguaggio di programmazione Lisp: alcune importanti caratteristiche sono lo sviluppo interattivo, la filosofia secondo cui lo stesso codice è un dato, le macro e la compilazione in Java bytecode, che permette a Clojure di funzionare su una macchina virtuale Java e di accedere facilmente a tutte le librerie Java. Il supporto del paradigma di programmazione funzionale, unito alla persistenza dei dati in memoria e alla loro gestione tramite STM permette di realizzare più facilmente programmi basati sul calcolo parallelo e multithread.

Filosofia

modifica

Rich Hickey sviluppò Clojure poiché voleva avere a disposizione un moderno linguaggio Lisp in grado di supportare il paradigma di programmazione funzionale, di sfruttare una piattaforma software già esistente e di gestire facilmente la concorrenza.

Esempi

modifica

Hello world:

(println "Hello world!")

Definizione di una funzione:

(defn square [x]
  (* x x))

Altri progetti

modifica

Collegamenti esterni

modifica
Controllo di autoritàLCCN (ENsh2011003332 · GND (DE7722643-4 · J9U (ENHE987007599872005171
  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica

📚 Artikel Terkait di Wikipedia

Benevolo dittatore a vita

originale il 21 febbraio 2016). ^ JIRA workflow - Clojure Community - Clojure Development, su dev.clojure.org. URL consultato il 3 giugno 2016 (archiviato

Kebab case

usata in Forth, COBOL, Lisp e derivati, CSS e Perl 6. ^ C. Meier, Living Clojure: An Introduction and Training Plan for Developers, O'Reilly Media, 2015

Trattino basso

speciale variabile di array che contiene gli argomenti di una funzione. In Clojure, indica un argomento il cui valore verrà ignorato. In alcuni linguaggi

Lisp

digitare: * (require:test) * (miotest) Hello, world! NIL * ... Arc AutoLISP Clojure Common LISP Scheme Nyquist ^ John McCarthy, Recursive Functions of Symbolic

Elixir (linguaggio di programmazione)

Enumerable è un esempio di protocollo ed è ispirato ai riduttori Clojure Così come avviene in Clojure, i protocolli forniscono un meccanismo di collegamento dinamico

Hello world

Disambiguazione – Se stai cercando altri significati, vedi Hello world (disambigua). In informatica Hello world! (in italiano "Ciao mondo!") è un semplice

Heroku

supportava solamente Ruby; in seguito sono stati aggiunti Java, Node.js, Scala, Clojure, Python, PHP, e Go. Cocaine (PaaS) Nodejitsu Distelli OpenShift Bluemix

Macchina virtuale Java

vari che possono essere tradotti in Java bytecode figurano Java, Groovy, Clojure, Scala, Kotlin. La JVM è definita da una specifica, mantenuta da Oracle