Выпуск языка программирования 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