О разделе
Длинные листинги (от ~15 строк) вынесены в каталог code.spirzen.ru и подгружаются в статьях через ExternalCodeEmbed — так HTML энциклопедии не раздувается, а код остаётся с подсветкой, вкладками и сериями "шаг 1…N". Короткие фрагменты (одна строка, пара выражений) по-прежнему прямо в markdown. Диаграммы mermaid и интерактив — на месте или в play.spirzen.ru.
Раздел про Lisp и его современное воплощение в учебном курсе — прежде всего Common Lisp — S-выражения, REPL, макросы, CLOS и практическая первая программа.
Примеры кода в учебных статьях (2–8) рассчитаны на ANSI Common Lisp (SBCL, CCL, CLISP). Scheme и Clojure упоминаются в истории и сравнениях; синтаксис у них близкий, но детали отличаются (например, defun и define, nil и #f).
Сначала: Что такое код и как он работает — общая база — код, блок кода, компиляция и интерпретация, исходный, байт- и машинный код; в этом разделе — синтаксис и особенности языка.
Рекомендуемый маршрут
| Этап | Статьи | Зачем |
|---|---|---|
| Контекст | История | от Lisp 1.5 до Common Lisp и Clojure |
| Идеи | Основы, Архитектура | S-expr, eval, макросы, окружения |
| Язык | Типы, Управление, Функции | данные, if/cond, рекурсия |
| Практика | Первая программа | установка REPL, hello world |
| Стиль | Функциональное программирование | чистые функции, идиомы |
| Справка | Справочник | шпаргалка по CL: API, CLOS, ASDF, идиомы (не заменяет курс) |
Начните с установки и REPL, затем читайте основы с открытым интерпретатором.
Зачем этот раздел
Подборка по Lisp в энциклопедии: синтаксис, первая программа и смежные темы. Выберите один язык для старта, пройдите маршрут до первой рабочей программы — затем переходите к следующему языку или стеку.
С чего начать
| Шаг | Материал | Зачем |
|---|---|---|
| 1 | Первая программа | Запуск и синтаксис |
Частые ошибки при старте
| Ошибка | Что делать |
|---|---|
| Прыжки между языками | Закройте одну "первую программу", потом сравнивайте |
| Код без запуска | Выполните пример локально |
| Сразу большой фреймворк | Сначала база раздела, потом REST/UI |
Что попробовать
- Шаг 1 из таблицы.
- Три непонятных термина — найдите статьи в оглавлении раздела.
- Другой язык — только после своей рабочей первой программы.
Как читать раздел без перегруза
Если кажется, что Lisp "слишком теоретичен", используйте практический ритм:
- Прочитайте 1 небольшой блок теории (5-10 минут).
- Сразу повторите 2-3 выражения в REPL.
- Зафиксируйте, что именно вернуло выражение и почему.
- Только после этого переходите к следующему блоку.
Так материал перестаёт быть абстрактным: каждое определение сразу превращается в рабочий навык. Для такого ритма удобна связка: первая программа → основы → управляющие конструкции.
Сквозные темы раздела
Чтобы не воспринимать статьи как отдельные фрагменты, держите в голове три сквозные идеи:
- Код как данные — из этого вырастают
quote,eval, макросы и DSL (архитектура). - Функции как значения — из этого вырастают
mapcar,lambda, замыкания и композиция (функции, FP-стиль). - Интерактивная разработка: из этого вырастают REPL-подход, быстрые итерации и отладка (первая программа, справочник).
История языка Lisp
История Lisp - эволюция языка от ранних реализаций до современной функционально-символьной парадигмы.
Основы языка Lisp
Основы Lisp - homoiconicity, макросистема и ключевые принципы языка как основы метапрограммирования.
Архитектура Lisp-систем
Архитектура Lisp-систем - списочная модель данных, символические вычисления и единое представление кода и структуры.
Типы данных в Lisp
Типизация, набор правил определения типа данных значений языка.
Управляющие конструкции и операторы Lisp
Управляющие конструкции и операторы Lisp - управление потоком через выражения в функционально-символьной модели.
Функции и рекурсия в Lisp
Функции и рекурсия в Lisp - форма `defun`, работа со списками аргументов и построение рекурсивных выражений.
Первая программа на Lisp
Гайд по установке и настройке с написанием первой программы и её запуском.
Функциональное программирование в Lisp
Функциональное программирование в Lisp - функции первого класса, композиция и выразительная работа со списками.
Справочник по Lisp
Все программы на Lisp записываются в виде S-выражений (symbolic expressions). S-выражение — это либо атом, либо список.
Lisp — о разделе
Раздел про Lisp и его современное воплощение в учебном курсе — прежде всего Common Lisp: S-выражения, REPL, макросы, CLOS и практическая первая программа.
В подборках
Статья входит в тематические подборки и блок "С чего начать?" на главной. Соседние шаги того же маршрута:
Бэкенд и серверная разработка — Fortran — о разделе, Pascal — о разделе, Cobol — о разделе, Visual Basic — о разделе, Lua и Luau — о разделе, Ассемблер — о разделе.