Programmiersprache Clojure 1.11 erneuert Syntax und mathematische Funktionen
Die funktionale Sprache bringt Syntax- und Namespace-Neuerungen sowie Bugfixes fĂĽr die Performance und Fehlermeldungen.
Der Lisp-Dialekt Clojure wartet nach ĂĽber drei Jahren mit der neuen Version 1.11 auf. Seit Clojure 1.10 sind einige neue Features eingeflossen, darunter eine ĂĽberarbeitete Syntax fĂĽr den Umgang mit Keyword-Argumenten, ein neuer Namespace und Fehlerbehebungen.
Die funktionale Programmiersprache Clojure läuft in der Java Virtual Machine (JVM) und erschien erstmals 2007. Im vergangenen Jahr ergatterte sie im "Stack Overflow Developer Survey" den zweiten Platz der beliebtesten Programmiersprachen, einzig Rust erfreute sich einer noch größeren Beliebtheit.
Syntaxerweiterung
In Version 1.11 akzeptieren Keyword-Argument-Funktionen erstmals eine Map. Keyword-Argumente in Clojure sind optional nachlaufende variadische Argumente nach dem Muster akey aval bkey bval...
. Funktionen, die Keyword-Argumente annehmen, können nun eine Map erhalten, entweder statt Schlüssel/Wert-Paaren oder nachfolgend und zusätzlich zu ihnen. Wird einzig eine Map übergeben, kommt sie für Destructuring zum Einsatz, andernfalls wird eine nachfolgende Map einem Schlüssel/Wert-Paar durch conj
hinzugefĂĽgt. Weitere AusfĂĽhrungen dazu finden sich in der AnkĂĽndigung des neuen Features.
Neue mathematische Funktionen
Der neue Namespace clojure.math
in Clojure 1.11 bietet Wrapper fĂĽr die in java.lang.Math
enthaltenen Funktionen. Diese sind auf long
- und double
-Overloads begrenzt und bieten primitiven Support ohne Reflexion. Zudem haben die Funktionen abs
, NaN?
und infinite?
in clojure.core
Einzug gehalten.
Weitere Neuerungen betreffen zusätzliche Parsing-Funktionen sowie Bugfixes für Compiler, Performance und Fehlermeldungen. So soll das fälschliche Bezeichnen von Laufzeitfehlern als Compilerfehler in Calls durch Compiler.load()
nun nicht mehr auftreten.
Support fĂĽr Java-LTS-Versionen
Clojure hängt von Java ab, und der Code der Progammiersprache wird zu Java-8-kompatiblem Bytecode kompiliert. Mit ihm können auch neuere Java-Versionen umgehen. Als minimale Laufzeit-Dependency für Clojure 1.11 gilt Java 8, aber auch die weiteren Long-Term-Support-Versionen 11 und 17 lassen sich verwenden. Andere Java-Versionen dürften laut Clojure-Team ebenfalls funktionieren, allerdings ist dafür keine offizielle Unterstützung vorhanden.
Die unter Eclipse Public License 1.0 stehende Programmiersprache steht in Version 1.11 zum Download bereit. Alle Details zum neuen Release sind der AnkĂĽndigung auf der Clojure-Website zu entnehmen.
(mai)