feat: add Clojure/Nim chapter to the book + restructure for GitLab

- New chapter 05-clojure-nim.md (EN + BG) covering:
  - Native compilation pipeline (Clojure → Nim → C → binary)
  - AI-powered development (error explanation, code generation)
  - JSON REPL for AI agents
  - loop/recur with real TCO
  - Cross-compilation: JS, shared libs, WASM
  - Persistent data structures (HAMT)
  - Concurrency: atoms, agents, channels
- Updated book README.md with Clojure/Nim focus
- Added Clojure/Nim terms to subject indices (EN + BG)
- Removed books/ from .gitignore so it can be pushed to GitLab
This commit is contained in:
2026-05-08 23:32:11 +03:00
parent 10e4ec07d6
commit 23252826a0
14 changed files with 9386 additions and 1 deletions
+238
View File
@@ -0,0 +1,238 @@
# Subject Index - Bulgarian
## А
- **Агенти (Agents)** - [11.3](bg/01-fundamentals.md#113-агенти-agents)
- **Алиасиране на namespaces** - [9.3](bg/01-fundamentals.md#93-отнасяне-и-импортиране)
- **Алокиране (памет)** - [8.2](bg/02-advanced.md#82-transient-структури-от-данни)
- **Анонимни функции** - [5.2](bg/01-fundamentals.md#52-анонимни-функции)
- **Аритности** - [5.1.2](bg/01-fundamentals.md#512-множество-арности)
- **Асинхронно програмиране** - [16](bg/01-fundamentals.md#16-coreasync), [4](bg/04-recipes.md#4-async-рецепти)
- **Атом (Atom)** - [11.1](bg/01-fundamentals.md#11-атоми-atoms), [5](bg/05-clojure-nim.md#конкурентност)
- **AI интеграция** - [5](bg/05-clojure-nim.md#ai-асистирана-разработка)
- **AI агенти** - [5](bg/05-clojure-nim.md#json-repl-за-ai-агенти)
- **Clojure/Nim** - [5](bg/05-clojure-nim.md) — Нативна компилация, AI, JSON REPL
- **Cross-compilation** - [5](bg/05-clojure-nim.md#cross-compilation-target-и) — JS, WASM, shared libraries
## Б
- **Батч обработка** - [8.5](bg/02-advanced.md#85-batch-обработка), [8.1](bg/04-recipes.md#81-batch-обработка)
- **Булеви стойности** - [4.4](bg/01-fundamentals.md#44-булеви-стойности)
## В
- **Вариадични функции** - [1.1](bg/02-advanced.md#11-вариадични-функции)
- **Вграждане на типове** - [12.3](bg/01-fundamentals.md#123-разширяване-на-съществуващи-типове)
- **Вектори (Vectors)** - [4.8](bg/01-fundamentals.md#48-вектори-vectors)
- **Вербална форма** - [3.6](bg/01-fundamentals.md#36-интервали-и-форматиране)
- **Взаимна рекурсия** - [1.4](bg/02-advanced.md#14-взаимна-рекурсия)
- **Видове диспечиране** - [13](bg/01-fundamentals.md#13-многометодни-функции)
- **Вложен достъп** - [2.1](bg/04-recipes.md#21-вложен-достъп-до-данни)
- **Вложени серии** - [2.3](bg/02-advanced.md#23-lazy-cons-и-реализация)
- **Всички (reduce)** - [7.3.3](bg/01-fundamentals.md#733-reduce)
- **Входни/изходни условия** - [1.6](bg/02-advanced.md#16-пред--и-пост-условия)
## Г
- **Генеративно тестване** - [14.4](bg/01-fundamentals.md#144-генеративно-тестване), [4.5](bg/02-advanced.md#45-генеративно-тестване)
- **Групиране** - [2.2](bg/04-recipes.md#22-групиране-и-агрегиране)
## Д
- **Дата структури** - [4](bg/01-fundamentals.md#4-структури-от-данни)
- **дебъг** - [8.5](bg/03-tooling.md#85-breakpoints)
- **Дебъгване** - [8](bg/03-tooling.md#8-техники-за-дебъгване)
- **def** - [3.3.1](bg/01-fundamentals.md#331-def)
- **defmacro** - [10.1](bg/01-fundamentals.md#101-какво-са-макросите)
- **defmethod** - [13.1](bg/01-fundamentals.md#131-дефиниране-на-многометодни-функции)
- **defmulti** - [13.1](bg/01-fundamentals.md#131-дефиниране-на-многометодни-функции)
- **defn** - [5.1.1](bg/01-fundamentals.md#511-основен-синтаксис)
- **defprotocol** - [12.1](bg/01-fundamentals.md#121-протоколи)
- **defrecord** - [12.2](bg/01-fundamentals.md#122-записи)
- **delay** - [11.6](bg/01-fundamentals.md#116-promises-и-delivered)
- **Деструктуриране** - [8](bg/01-fundamentals.md#8-деструктуриране)
- **диспечиране по поведение** - [13](bg/01-fundamentals.md#13-многометодни-функции)
- **Docker** - [6.3](bg/03-tooling.md#63-docker-интеграция)
- **doseq** - [6.2.4](bg/01-fundamentals.md#624-doseq-странични-ефекти)
- **dosync** - [11.2](bg/01-fundamentals.md#112-референции-refs)
- **dotimes** - [6.2.3](bg/01-fundamentals.md#623-for-list-comprehension)
- **drop** - [7.3.6](bg/01-fundamentals.md#736-take--drop)
- **drop-while** - [7.3.6](bg/01-fundamentals.md#736-take--drop)
## Е
- **Екосистема от библиотеки** - [7](bg/03-tooling.md#7-екосистема-от-библиотеки)
- **Едноредови коментари** - [3.5](bg/01-fundamentals.md#35-коментари)
- **Either модел** - [1.2](bg/04-recipes.md#12-eitherresult-модел)
## Ж
- **Жизнения цикъл** - [3.1](bg/04-recipes.md#31-service-модел-с-atoms)
## З
- **Затваряне (Closure)** - [5.4](bg/01-fundamentals.md#54-затваряния-closures)
- **Записи (Records)** - [12.2](bg/01-fundamentals.md#122-записи)
- **Зареждане на зависимости** - [2.1](bg/03-tooling.md#21-depsedn-референция)
## И
- **Идентичности** - [11](bg/01-fundamentals.md#11-конкурентност)
- **Изграждане и деплойване** - [6](bg/03-tooling.md#6-изграждане-и-деплойване)
- **Изключения** - [6.3](bg/01-fundamentals.md#63-обработка-на-изключения)
- **Итерация** - [6.2](bg/01-fundamentals.md#62-итерация)
- **Инсталация** - [2.1](bg/01-fundamentals.md#21-инсталация)
- **Интеграционно тестване** - [3.3](bg/03-tooling.md#33-тестови-namespace-и)
- **Инфраструктура за тестване** - [3](bg/03-tooling.md#3-инфраструктура-за-тестване)
## К
- **Канали (Channels)** - [16.1](bg/01-fundamentals.md#161-канали)
- **Кеширане** - [1.5](bg/01-fundamentals.md#15-мемоизация), [8.6](bg/02-advanced.md#86-предварително-зареждане-и-кеширане), [8.2](bg/04-recipes.md#82-caching-с-ttl)
- **Ключови думи (Keywords)** - [4.5](bg/01-fundamentals.md#45-ключови-думи-keywords)
- **Колекции** - [4.12](bg/01-fundamentals.md#412-библиотека-за-колекции)
- **Коментари** - [3.5](bg/01-fundamentals.md#35-коментари)
- **Композиране на функции** - [5.3](bg/01-fundamentals.md#53-функции-от-по-висок-ред)
- **Конкурентност** - [11](bg/01-fundamentals.md#11-конкурентност)
- **Контракти** - [5.3](bg/04-recipes.md#53-contract-тестване)
- **Конфигуриране** - [1.3](bg/02-advanced.md#13-аргументи-от-тип-ключова-дума)
- **Куриране** - [5.3](bg/04-recipes.md#53-contract-тестване)
## Л
- **Лениви серии** - [7.2](bg/01-fundamentals.md#72-мързеливи-серии), [2](bg/02-advanced.md#2-мързеливи-серии---задълбочено)
- **let** - [3.3.2](bg/01-fundamentals.md#332-let)
- **letfn** - [5.1.3](bg/01-fundamentals.md#513-променлив-брой-аргументи)
- **Литери** - [4.1](bg/01-fundamentals.md#41-числа)
- **Логване** - [8.6](bg/03-tooling.md#86-logging)
- **loop** - [6.2.2](bg/01-fundamentals.md#622-looprecur)
## М
- **Макроси** - [10](bg/01-fundamentals.md#10-макроси)
- **Мемоизация** - [1.5](bg/02-advanced.md#15-мемоизация)
- **Метаданни на функции** - [1.7](bg/02-advanced.md#17-метаданни-на-функции)
- **Множества (Sets)** - [4.10](bg/01-fundamentals.md#410-множества-sets)
- **Многометодни функции** - [13](bg/01-fundamentals.md#13-многометодни-функции)
- **Модел на състояние (State machine)** - [1.3](bg/04-recipes.md#13-state-machine-модел)
- **Мързелива консумация** - [2.3](bg/02-advanced.md#23-lazy-cons-и-реализация)
## Н
- **Наблюдение на състояние** - [8.4](bg/03-tooling.md#84-watching-state)
- **Намиране на библиотеки** - [7.6](bg/03-tooling.md#76-намиране-на-библиотеки)
- **Насоки за STM** - [11.7](bg/01-fundamentals.md#117-насоки-за-stm)
- **Независимост от типа** - [13.1](bg/01-fundamentals.md#131-дефиниране-на-многометодни-функции)
- **Неизменяемост** - [1.2.1](bg/01-fundamentals.md#121-неизменяемост-по-подразбиране), [4](bg/01-fundamentals.md#4-структури-от-данни)
- **Низове (Strings)** - [4.2](bg/01-fundamentals.md#42-низове)
- **Namespace** - [9](bg/01-fundamentals.md#9-пространства-от-имена)
## О
- **Обекти за серии** - [2.4](bg/02-advanced.md#24-seqable-обекти)
- **Обхождане на колекции** - [7.5](bg/01-fundamentals.md#75-обхождане-на-колекции)
- **Област на видимост** - [3.3.2](bg/01-fundamentals.md#332-let)
- **Операции с дървета** - [2.4](bg/04-recipes.md#24-tree-операции)
- **Оптимизация на производителността** - [8](bg/02-advanced.md#8-оптимизация-на-производителността)
- **Основни функции** - [5](bg/01-fundamentals.md#5-функции)
- **Отношения** - [13.3](bg/01-fundamentals.md#133-йерархии)
## П
- **Паралелизъм** - [7](bg/02-advanced.md#7-паралелизъм)
- **Персонализирани reducers** - [6.2](bg/02-advanced.md#62-използване-на-reducers)
- **Писане на редове** - [8.1](bg/03-tooling.md#81-print-дебъгване)
- **Предикати** - [4.12](bg/01-fundamentals.md#412-библиотека-за-колекции)
- **Предварително зареждане** - [8.6](bg/02-advanced.md#86-предварително-зареждане-и-кеширане)
- **Презареждане на код** - [4.1](bg/03-tooling.md#41-repl-driven-разработка), [4.2](bg/03-tooling.md#42-hot-loading-на-код)
- **Примитивни типове** - [4.1](bg/01-fundamentals.md#41-числа)
- **Проектна структура** - [1](bg/03-tooling.md#1-структура-на-проекта)
- **Променливи (Vars)** - [11.4](bg/01-fundamentals.md#114-променливи-vars)
- **Протоколи** - [12](bg/01-fundamentals.md#12-протоколи-и-записи)
- **Процеси** - [3.1](bg/04-recipes.md#31-service-модел-с-atoms)
## Р
- **Разширени функции** - [1](bg/02-advanced.md#1-разширени-функции)
- **Редуктори** - [6](bg/02-advanced.md#6-reducibles)
- **Референции (Refs)** - [11.2](bg/01-fundamentals.md#112-референции-refs)
- **Рецепти за async** - [4](bg/04-recipes.md#4-async-рецепти)
- **Рецепти за валидация** - [5](bg/04-recipes.md#5-рецепти-за-валидация)
- **Рецепти за данни** - [2](bg/04-recipes.md#2-рецепти-за-трансформация-на-данни)
- **Рецепти за производителност** - [8](bg/04-recipes.md#8-рецепти-за-производителност)
- **Рецепти за тестване** - [7](bg/04-recipes.md#7-рецепти-за-тестване)
- **Рецепти за управление на състояние** - [3](bg/04-recipes.md#3-рецепти-за-управление-на-състояние)
- **Резервно копие** - [4.3](bg/04-recipes.md#43-timeout-модели)
- **Рекursивност** - [6.2.1](bg/01-fundamentals.md#621-рекурсия)
- **REPL** - [2.2](bg/01-fundamentals.md#22-вашият-първи-clojure-проект), [15](bg/01-fundamentals.md#15-repl)
- **Роля** - [5.3](bg/04-recipes.md#53-contract-тестване)
## С
- **Свободни променливи** - [5.4](bg/01-fundamentals.md#54-затваряния-closures)
- **Серии (Sequences)** - [7](bg/01-fundamentals.md#7-серии-и-мързеливо-оценяване)
- **Символи (Symbols)** - [4.6](bg/01-fundamentals.md#46-символи-symbols)
- **Синтаксис цитат** - [10.2](bg/01-fundamentals.md#102-syntax-quote)
- **Специални форми** - [3.3](bg/01-fundamentals.md#33-специални-форми)
- **Списъци (Lists)** - [4.7](bg/01-fundamentals.md#47-списъци-lists)
- **Спретващо сери** - [2.2](bg/02-advanced.md#22-chunked-серии)
- **Средна работа** - [8.5](bg/02-advanced.md#85-batch-обработка)
- **Статус на веригата** - [3.4](bg/04-recipes.md#34-circuit-breaker)
- **Стек trace** - [8.2](bg/03-tooling.md#82-stack-traces)
- **Структури от данни** - [4](bg/01-fundamentals.md#4-структури-от-данни)
- **Събития** - [3.2](bg/04-recipes.md#32-event-sourcing)
## Т
- **Текстови низове** - [4.2](bg/01-fundamentals.md#42-низове)
- **Тестване** - [14](bg/01-fundamentals.md#14-тестване)
- **Типове** - [4.1](bg/01-fundamentals.md#41-числа)
- **Трансдюсъри** - [3](bg/02-advanced.md#3-трансдюсъри)
- **Трансформиране на данни** - [2](bg/04-recipes.md#2-рецепти-за-трансформация-на-данни)
## У
- **Управление на състояние** - [3](bg/04-recipes.md#3-рецепти-за-управление-на-състояние)
- **Уникални стойности** - [7.3.9](bg/01-fundamentals.md#739-distinct--sort--shuffle)
## Ф
- **Фабрични функции** - [12.2](bg/01-fundamentals.md#122-записи)
- **Философия на Clojure** - [1.4](bg/01-fundamentals.md#14-философията-на-clojure)
- **Филтриране** - [7.3.2](bg/01-fundamentals.md#732-filter--remove)
- **Форматиране** - [3.6](bg/01-fundamentals.md#36-интервали-и-форматиране)
- **Функции** - [5](bg/01-fundamentals.md#5-функции)
- **Функции от по-висок ред** - [5.3](bg/01-fundamentals.md#53-функции-от-по-висок-ред)
- **Функционално програмиране** - [1.2.2](bg/01-fundamentals.md#122-функционално-пограмиране)
## Х
- **Хигиена на макроси** - [10.7](bg/01-fundamentals.md#107-хгиена)
- **Хранилище на събития** - [3.2](bg/04-recipes.md#32-event-sourcing)
## Ц
- **Целочислени типове** - [4.1.1](bg/01-fundamentals.md#411-целочислени-типове)
- **Цикли** - [6.2](bg/01-fundamentals.md#62-итерация)
## Ч
- **Числа** - [4.1](bg/01-fundamentals.md#41-числа)
- **Числа с плаваща запетая** - [4.1.2](bg/01-fundamentals.md#412-числа-с-плаваща-запетая)
- **Често срещани модели** - [1](bg/04-recipes.md#1-често-срещани-модели)
## Ш
- **Шаблони** - [5.2](bg/04-recipes.md#52-schema-валидация)
## Щ
- **Щафета (pipeline)** - [4.1](bg/04-recipes.md#41-channel-pipeline)
## Ъ
- **Ъндъфи** - [3.2](bg/04-recipes.md#32-event-sourcing)
## Я
- **Ядро async** - [16](bg/01-fundamentals.md#16-coreasync)