Бесплатный курс

Clojure как второй язык

Clojure — современный диалект Лиспа, язык программирования общего назначения с поддержкой разработки в интерактивном режиме, поощряющий функциональное программирование и упрощающий поддержку многопоточности

10 часов92 студента40 уроков с практикой в браузере
Начать обучение

Основы Clojure

Погрузитесь в мир языка, который совмещает в себе выразительность Lisp и возможности платформы JVM

Объявления

Логика

Булева алгебра, условные выражения, конструкции ветвления и выбора — то, без чего невозможна ни одна сколько-нибудь сложная программа. Clojure имеет свои интересные особенности, когда речь заходит о программировании булевой логики: об этом и рассказывает данный модуль.

Списки

Основная структура данных в языках семейства Lisp — это список. Не зря же "LISP" расшифровывается как "LISt Processor", то есть "обработчик списков". Списки используются в языках и для хранения данных и для написания кода: сама программа на Lisp-языке состоит из списка списков списков (…). Этот модуль учит объявлять списки и обрабатывать их содержимое различными способами.

Строки

Любой язык программирования умеет работать с текстом, строками, отдельными символами. Модуль показывает, как работает с текстом в Clojure.

Вектора

Массивы является одной из универсальных и часто используемых структур данных, в Clojure массивы принято назвать векторами, которые мы и рассмотрим в этом модуле.

Хеш-мапы

Когда дело касается гетерогенных данных (данные разных типов), то на помощь приходят хеш-мапы, рассмотрим их использование в Clojure.

Состояниe

Одна из уникальных особенностей Clojure - это работа с состоянием, в этом модуле обсудим STM (Software Transactional Memory), атомы, агентов и ссылки.

Макросы

Благодаря системе макросов, в любом Lisp языке можно расширять его выразительность до бесконечности (но использование макросов - черная магия, поэтому ими нужно пользоваться с осторожностью и пониманием). В этом модуле расссмотрим, как работают с макросами в Clojure.

Полиморфизм

Довольно часто возникают задачи, которые можно решить, имея полиморфное поведение, рассмотрим как можно получить такое поведение в Clojure.

Трансдьюсеры

Иногда бизнес-требования слишком сложны и противоречивы. Накладывать их на функциональный стиль становится слишком дорого. Для разрешения таких проблем в Clojure были созданы трансдьюсеры, которые и будут рассмотрены в этом модуле.
Готовы попробовать?
Регистрация не требуется