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