Для прохождения курса «Функциональное программирование» я решила выбрать Clojure. В первую очередь он привлёк меня тем, что разработан на JVM и, соответственно, поддерживает использование Java-библиотек и фреймворков, что позволяет применять уже приобретённые навыки и знания. Одной из основных целей при проектировании Clojure было сделать написанные программы простыми, а значит — ускорить их создание и тестирование. Это помогает научиться писать код, который легко сопровождать и расширять. Clojure унаследовал от Lisp’а макросы, что упрощает работу с программами и повышает их расширяемость. Язык также привлекает своей практической направленностью и способностью сочетать функциональную строгость с гибкостью реального применения. Такое сочетание позволяет глубже освоить функциональную парадигму и в то же время оставаться полезным в реальных проектах, где важны скорость разработки и надёжность.
Для четвёртой лабораторной работы мы с коллегами планируем реализовать проект, связанный с разработкой парсера (JSON/CSV/другой формат) с веб-интерфейсом. В дальнейшем мы, скорее всего, усложним и доработаем эту идею, но пока рассматриваем её как ориентировочную.
- The Joy of Clojure.
- Документация.
- Clojure Programming.
- Статьи на хабре по надобности.
| Компонент | Инструмент |
|---|---|
| Компилятор/интерпретатор | Clojure CLI (clojure) |
| Система сборки | Leiningen |
| Стиль кодирования | Clojure Style Guide |
| Система автоматического форматирования | cljfmt |
| Инструменты тестирования | clojure.test, Midje |
| Среда разработки | IntelliJ IDEA (Cursive), VS Code (Calva) |