Clojure

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

Основы Clojure

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

Логика

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

Списки

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

Строки

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

Вектора

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

Хеш-мапы

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

Состояние

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

Полиморфизм

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

Макросы

Благодаря системе макросов, в любом Lisp языке можно расширять его выразительность до бесконечности (но использование макросов — черная магия, поэтому ими нужно пользоваться с осторожностью и пониманием). В этом модуле рассмотрим, как работают с макросами в Clojure.
Готовы попробовать?
Регистрация не требуется
Elixir
14 часов2686
Python
25 часов153965
HTML
11 часов95509
C (Си)
2 часа10183