www.wikidata.de-de.nina.az
Clojure ˈkleʊʒe r ist ein moderner Lisp Dialekt der interaktive Entwicklung unterstutzt Die Sprache fordert einen funktionalen Stil der nebenlaufige Programmierung stark vereinfacht Clojure lauft in der Java Virtual Machine und ist eng mit der Java Runtime integriert Eine JavaScript Implementierung mit dem Namen ClojureScript sowie eine CLR Implementierung existieren ebenso Das Makrosystem ist mit dem anderer Lisp Umgebungen vergleichbar ClojureLisp DialektBasisdatenParadigmen Funktionale ProgrammierspracheErscheinungsjahr 2007Entwickler Rich HickeyAktuelle Version 1 11 1 22 Marz 2022 Typisierung dynamisch starkBeeinflusst von Lisp Prolog ML Erlang Haskell Java 2 Betriebssystem Windows Linux macOS Solaris FreeBSDLizenz Eclipse Public Licensehttps clojure org Clojure Projekte werden auch mithilfe der Software Leiningen verwirklicht Inhaltsverzeichnis 1 Beispiele 2 Merkmale von Clojure 3 Homoikonizitat 4 IDE Unterstutzung 5 Literatur 6 Weblinks 7 EinzelnachweiseBeispiele BearbeitenVollstandige Hallo Welt Programme textuell im Lisp Stil println Hallo Welt grafisch mit Hilfe der Java Bibliothek Swing javax swing JOptionPane showMessageDialog nil Hallo Welt Die Fakultats Funktion als Beispiel fur Rekursion in Clojure defn factorial n tail recursive version of n loop cur n acc 1 if lt cur 1 acc recur dec cur cur acc Die Fakultats Funktion durch Verwendung von Funktionen hoherer Ordnung defn fac n reduce range 1 inc n Merkmale von Clojure BearbeitenFunktionale Sprache mit einer Lisp Syntax Dynamische interaktive Entwicklung in der REPL Read eval print loop Neben der in Lisp klassischen Liste unterstutzt die Syntax Vektoren assoziative Arrays und Mengen Die Abstraktion der Folge sequence erlaubt es alle diese Datenstrukturen uniform mit denselben Funktionen zu verwenden Folgen werden typischerweise verzogert lazy ausgewertet Alle Datenstrukturen sind Werte immutable Zustandsbehaftete Daten werden in Clojure durch spezielle Typen realisiert atoms und refs Der konkurrierende Zugriff auf Variablen mit veranderlichen Werten wird mittels STM software transactional memory durch das Laufzeitsystem der Sprache synchronisiert Die Konzepte entsprechen der Multiversion Concurrency Control wie sie in Datenbankmanagementsystemen verwendet werden exakt so wie in Oracle Clojure wird zu Java Bytecode kompiliert und in der Java Virtual Machine ausgefuhrt Dadurch ist es moglich in Clojure jede beliebige Java Bibliothek zu verwenden und fur sehr viele von diesen gibt es oft schmale Wrapper Bibliotheken in Clojure Neben Clojure gibt es ClojureScript eine Sprache die Konzept und Syntax mit Clojure teilt Clojurescript wird zu JavaScript kompiliert Homoikonizitat BearbeitenAls Lisp Dialekt spielt das Prinzip Code als Daten bzw Homoikonizitat eine wichtige Rolle Das Makrosystem von Clojure beruht auf dieser Eigenschaft und erlaubt so Metaprogrammierung Konkret kann Clojure davon profitieren indem es Eigenschaften die in anderen Programmiersprachen fest integriert sind als Bibliotheken zur Verfugung stellt Als Beispiele seien hier Pattern Matching 3 und ein Typsystem 4 genannt IDE Unterstutzung BearbeitenLight Table ist eine interaktive IDE mit Clojure Unterstutzung 5 Fur IntelliJ IDEA gibt es das Plugin Cursive 6 Fur Eclipse gibt es Counterclockwise 7 seit 2018 nicht mehr gewartet Eine ClojureCLR Erweiterung fur Visual Studio ist vsClojure 8 Fur Emacs sind Clojure Mode 9 und CIDER 10 verfugbar Fur Vim gibt es VimClojure 11 Fur Visual Studio Code gibt es Clojure 12 oder Calva 13 Fur Sublime Text gibt es Clojure Sublimed 14 Literatur BearbeitenAlex Miller mit Stuart Halloway und Aaron Bedra Programming Clojure Third Edition Pragmatic Programmers 2018 ISBN 978 1 68050 246 6 Rich Hickey The Clojure programming language In Dynamic Languages Symposium archive Proceedings of the 2008 symposium on Dynamic languages Juli 2008 ISBN 978 1 60558 270 2 doi 10 1145 1408681 1408682 Stefan Kamphausen Tim Oliver Kaiser Clojure dpunkt verlag 2010 ISBN 978 3 89864 684 0 Carin Meier Living Clojure O Reilly 2015 ISBN 978 1 4919 0904 1 Chas Emerick Brian Carper und Christophe Grand Clojure Programming O Reilly 2012 ISBN 978 1 4493 9470 7 Weblinks Bearbeiten nbsp Wikibooks Clojure Programming Lern und Lehrmaterialien englisch Offizielle Website von Clojure Clojure Documentation gemeinschaftlich betriebenes Dokumentationsprojekt ClojureDocs ebenfalls gemeinschaftlich betriebene Sammlung von Dokumentation und Beispielen Literatur zu Clojure Concurrent Programming mit Clojure In Linux Magazin deutsch Interaktiver Onlineinterpreter fur Clojure und ClojureScript zum Ausprobieren Vortrage von Rich Hickey uber ClojureEinzelnachweise Bearbeiten Clojure Downloads Rich Hickey Books that influenced Clojure 30 Juni 2009 abgerufen am 24 August 2010 github com github com Light Table Cursive CounterClockWise IDE vsClojure Clojure Mode CIDER VimClojure Clojure Calva Clojure Sublimed Packages Package Control Abgerufen am 24 Februar 2022 Normdaten Sachbegriff GND 7722643 4 lobid OGND AKS Abgerufen von https de wikipedia org w index php title Clojure amp oldid 233297703