Clojure: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m smistamento stub |
m Corretto un collegamento che portava a una "pagina di disambiguazione" nell'introduzione |
||
(21 versioni intermedie di 16 utenti non mostrate) | |||
Riga 1:
{{S|software}}
|
|immagine =
|
|data = 2007
▲|Sviluppatore = Rich Hickey
|versione =
|utilizzo = funzionale, concorrente
|paradigmi = [[Programmazione funzionale|funzionale]]
|tipizzazione = forte, dinamica
|estensione = .clj, .cljs, .edn
|influenzato_da = [[Lisp]], [[Erlang (linguaggio di programmazione)|Erlang]], [[Haskell (linguaggio)|Haskell]], [[ML (linguaggio di programmazione)|ML]], [[Prolog]], [[Scheme]], [[Java (linguaggio di programmazione)|Java]], [[Ruby (linguaggio di programmazione)|Ruby]]
|SistemiOperativi = Multipiattaforma▼
|ha_influenzato = [[Elixir (linguaggio di programmazione)|Elixir]]
|
▲|Licenza = Eclipse Public License
}}
▲-->{{tmp|Linguaggio di programmazione}}
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 (informatica)|macro]] e la compilazione in [[Java (linguaggio di programmazione)|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]] [[Programmazione funzionale|funzionale]], unito alla persistenza dei dati in memoria e alla loro gestione tramite [[Software transactional memory|STM]] permette di realizzare più facilmente programmi basati sul [[calcolo parallelo]] e [[Multithreading|multithread]].
== Filosofia ==
Rich Hickey sviluppò Clojure poiché voleva avere a disposizione un moderno linguaggio [[Lisp]] in grado di supportare il [[paradigma di programmazione]] [[Programmazione funzionale|funzionale]], di sfruttare una piattaforma software già esistente e di gestire facilmente la [[Concorrenza (informatica)|concorrenza]].
== Esempi==
[[Hello world]]:
<syntaxhighlight lang="clojure">
(println "Hello world!")
</syntaxhighlight>
Definizione di una funzione:
<syntaxhighlight lang="clojure">
(defn square [x]
(* x x))
</syntaxhighlight>
== Altri progetti ==
{{interprogetto}}
== Collegamenti esterni ==
* {{Collegamenti esterni}}
* {{
{{Controllo di autorità}}
{{Portale|informatica}}
[[Categoria:Linguaggi di programmazione funzionali]]
[[Categoria:Linguaggi per JVM]]
|