Выпуск языка программирования Clojure 1.9
После двух лет разработки подготовлен релиз динамического языка программирования Clojure 1.9, базирующегося на языковых конструкциях Lisp и сочетающего в себе возможности функционального и многопоточного программирования с чертами современных скриптовых языков. Код программ на языке Clojure транслируется в Java байт-код и выполняется на виртуальной машине JVM. Код компилятора Clojure, библиотек и runtime-компонентов распространяется в рамках лицензии Eclipse Public License.
Из ключевых улучшений отмечается:
- Интеграция с библиотекой spec для описания, проверки корректности и тестирования структуры данных и функций. При помощи spec можно автоматизировать выполнение таких задач, как валидация, обработка ошибок, деструктуризация, инструментовка, генерация тестов и тестовых данных. В Clojure поддержка spec добавлена через две библиотеки: spec.alpha — непосредственно реализация spec и core.specs.alpha — спецификации для языка Clojure. Обе библиотеки пока имеют уровень качества альфа-версии;
- Реализован набор утилит командной строки, предоставляющих интерактивную среду программирования Clojure REPL, а также инструменты для упрощения установки, компоненты для использование сборочной системы Maven и управления локальными зависимостями, API для управления classpath;
- В clojure.core добавлена большая порция предикатов и типов, включая «boolean?», «int?», «double?», «uuid?», «any?», «ident?», «bytes?»;
- Добавлены новые функции bounded-count, swap-vals!, reset-vals! и halt-when;
- Добавлен протокол Inst для типов, манипулирующих отрезками времени (применим для java.util.Date и java.time.Instant);
- В отображениях (map) обеспечена возможность указания пространств имён для ключей, например '#: car{: make «Jeep» : model «Wrangler»}'.
© OpenNet