This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Репозиторий содержит материалы технических докладов по функциональному программированию. Это не программный проект, а коллекция презентаций, документации и образовательных материалов, организованных в три основные категории.
Доклад о функциональном подходе к обработке ошибок через метафору железной дороги.
- Примеры на OCaml
- Введение в монады через практику
- Продолжительность: 35 минут + вопросы
Комплексный обзор ФП-возможностей в разных языках.
Ключевые файлы:
fp_languages_review.md- полное учебное пособие с примерами кодаFP_OBSIDIAN/- структурированная база знаний для работы в ObsidianКапля ФП в мире лошадей и хомячков.*- слайды презентации
Структура материалов:
- 00-Введение/ - базовые концепции ФП
- 01-Фундаментальные-свойства/ - 5 основных свойств (функции первого класса, чистые функции, иммутабельность, декларативный стиль, выражения)
- 02-Вспомогательные-свойства/ - 7 дополнительных свойств (композиция, рекурсия/TCO, АТД, pattern matching, статическая типизация, ленивые вычисления, изоляция эффектов)
- 03-Языки/ - описания 11 языков (OCaml, F#, Clojure, Scala, Ruby, Rust, Go, JavaScript, TypeScript, Python, Java, C++)
- 04-Сравнения/ - сводные таблицы
- 05-Ресурсы/ - материалы для изучения
Материалы для конференционного доклада о фундаментальных свойствах ФП.
CFP.md- тезисы для подачи на конференцию- Фокус на 5 языках: OCaml, Scala, Python, JavaScript, Rust
- Формат: 40-45 минут, intermediate level
Это Map of Content (MOC) для навигации по материалам ФП:
- Открывается в Obsidian как vault
- Граф связей между концепциями
- Навигация через внутренние ссылки
[[ссылка]] - Теги для фильтрации:
#фундаментальное,#вспомогательное,#язык,#сравнение,#ресурсы - Работает и как обычный Markdown без Obsidian
.md- основной формат документации и материалов.pdf/.pptx- финальные версии презентаций- Все markdown-файлы должны соответствовать markdown lint
- Аннотации типов и выразительные имена предпочтительнее комментариев
- Комментарий оправдан только для неочевидных семантических нюансов языка
- Если идею нельзя выразить в коде — переформулировать пример
- Каждое свойство, объявленное в теоретическом слайде, должно быть явно проиллюстрировано в примерах кода на каждом языке
- Контраст (чистая vs нечистая функция, декларативный vs императивный стиль) — обязательная часть иллюстрации, не опция
- Перед финализацией секции сверять список свойств из теоретического слайда с кодовыми слайдами
- Каждый языковой пример живёт на отдельном слайде
- Заголовок слайда:
# Свойство — Язык
- Вся документация ведется по-русски
- Без эмоджи и коммерческого сленга
- Markdown lint обязателен для всех .md файлов
- Каждый доклад в отдельной папке с собственным README.md
- README.md содержит описание, структуру и ключевые детали доклада
- Презентации хранятся в корне папки доклада
- Вспомогательные материалы организованы в подпапках
- Основная ветка:
master - Тематические ветки для новых докладов или значительных обновлений
- Коммиты на русском языке с описанием изменений
- Заголовки коммитов пишутся в совершенном прошедшем времени (добавил, исправил, удалил)
См. .gitignore:
- Временные файлы презентаций (~$*, *.tmp)
- Записи докладов (*.mp4, *.mp3, recordings/)
- Локальные конфиги Obsidian (.obsidian/)
- IDE конфиги (.vscode/, .idea/)
- Системные файлы (.DS_Store)
- Создать папку с говорящим именем
- Добавить README.md с описанием структуры доклада
- Обновить корневой README.md с ссылкой на новый доклад
- Сохранять структуру связей через
[[internal links]] - Использовать frontmatter с тегами для навигации
- Обновлять MOC (главный README.md) при добавлении новых разделов
- Хранить актуальные версии в корне папки доклада
- Указывать версию в названии файла при необходимости (например, "v2.0")