<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Функциональное Программирование on Digitable courses</title>
    <link>https://courses.digitable.life/tags/%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%BE%D0%BD%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B5-%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5/</link>
    <description>Recent content in Функциональное Программирование on Digitable courses</description>
    <generator>Hugo</generator>
    <language>ru-RU</language>
    <lastBuildDate>Sat, 01 Aug 2026 00:19:38 +0300</lastBuildDate>
    <atom:link href="https://courses.digitable.life/tags/%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%BE%D0%BD%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B5-%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Как человечество научилось рассуждать: от Аристотеля до программ и категорий</title>
      <link>https://courses.digitable.life/post/logic/00a-history-and-levels-of-abstraction/</link>
      <pubDate>Tue, 28 Jul 2026 10:05:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/logic/00a-history-and-levels-of-abstraction/</guid>
      <description>Две полноценные редакции одной истории: человеческий путь от убеждения к доказательству и инженерный путь от требования к типам, политикам, тестам и архитектуре.</description>
    </item>
    <item>
      <title>Алгебраические типы данных и сопоставление с образцом</title>
      <link>https://courses.digitable.life/post/functional-programming/06-adt-and-pattern-matching/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/functional-programming/06-adt-and-pattern-matching/</guid>
      <description>Как суммы и произведения типов убирают невозможные состояния из программы, зачем нужна проверка исчерпывающности и во что обходится моделирование данных через ADT.</description>
    </item>
    <item>
      <title>Альфа, бета и эта: три преобразования, из которых всё состоит</title>
      <link>https://courses.digitable.life/post/lambda-calculus/03-reductions/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/lambda-calculus/03-reductions/</guid>
      <description>Разбираем три правила переписывания лямбда-исчисления — переименование, вызов и упрощение — с полной пошаговой раскруткой редукций и рабочим редуктором на Python и JavaScript.</description>
    </item>
    <item>
      <title>Архитектура на ФП: функциональное ядро и императивная оболочка, ресурсы</title>
      <link>https://courses.digitable.life/post/functional-programming/16-architecture-and-practice/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/functional-programming/16-architecture-and-practice/</guid>
      <description>Как собрать из чистых функций целое приложение: функциональное ядро и императивная оболочка, решения как данные, что делать, когда сэндвич ломается, честная цена подхода и куда идти дальше.</description>
    </item>
    <item>
      <title>Карта функторов: иерархия абстракций ФП от полугруппы до комонады</title>
      <link>https://courses.digitable.life/post/functional-programming/09-functor-map/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/functional-programming/09-functor-map/</guid>
      <description>Одна связная карта всех абстракций ФП: зачем нужна каждая ступень от Semigroup до Comonad, чем они отличаются по силе, как выбрать нужную под задачу и сколько всё это стоит в реальном проекте</description>
    </item>
    <item>
      <title>Кодирование Чёрча: истина, ложь и условия из одних функций</title>
      <link>https://courses.digitable.life/post/lambda-calculus/04-booleans/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/lambda-calculus/04-booleans/</guid>
      <description>В лямбда-исчислении нет true, false и if — и они не нужны: булево значение оказывается функцией выбора из двух аргументов, а весь набор логических операций собирается из неё за десяток символов.</description>
    </item>
    <item>
      <title>Композиция, каррирование, частичное применение и конвейеры</title>
      <link>https://courses.digitable.life/post/functional-programming/05-composition-and-currying/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/functional-programming/05-composition-and-currying/</guid>
      <description>Как из маленьких функций собирать большие: композиция и её законы, каррирование и частичное применение, порядок аргументов data-first против data-last, конвейеры, трансдьюсеры и честная цена point-free стиля.</description>
    </item>
    <item>
      <title>Конкурентность в ФП: неизменяемость, STM, акторы</title>
      <link>https://courses.digitable.life/post/functional-programming/14-concurrency/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/functional-programming/14-concurrency/</guid>
      <description>Почему разделяемое изменяемое состояние — источник почти всех багов конкурентности, и что предлагают взамен ФП-модели: STM, акторы, каналы, чистый параллелизм. С честной ценой каждой.</description>
    </item>
    <item>
      <title>Ленивость, бесконечные структуры и потоки данных</title>
      <link>https://courses.digitable.life/post/functional-programming/11-laziness-and-streams/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/functional-programming/11-laziness-and-streams/</guid>
      <description>Ленивое вычисление — это не экзотика Haskell, а способ разделить «что мы порождаем» и «сколько нам нужно». Разбираем thunk и call-by-need, генераторы, бесконечные списки, потоки, backpressure и честную цену: space leak, непредсказуемую память и сломанный порядок эффектов.</description>
    </item>
    <item>
      <title>Лямбда-исчисление в живых языках: от Lisp до современных стрелочных функций</title>
      <link>https://courses.digitable.life/post/lambda-calculus/10-in-practice/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/lambda-calculus/10-in-practice/</guid>
      <description>Где именно лямбда-исчисление живёт в языках, на которых вы пишете каждый день: стрелочные функции как абстракции, вызов как бета-редекс, let как сахар, замыкания как оптимизация подстановки, и почему compiler-разработчики до сих пор мыслят термами.</description>
    </item>
    <item>
      <title>Лямбда-исчисление Чёрча: зачем оно программисту и что это вообще такое</title>
      <link>https://courses.digitable.life/post/lambda-calculus/00-overview/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/lambda-calculus/00-overview/</guid>
      <description>Язык программирования из трёх правил, придуманный до появления компьютеров: зачем он нужен практикующему разработчику и как читать первые редукции.</description>
    </item>
    <item>
      <title>Монады без страха: что это на самом деле и зачем</title>
      <link>https://courses.digitable.life/post/functional-programming/08-monads/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/functional-programming/08-monads/</guid>
      <description>Монада — не философия, а ответ на конкретную боль: как соединять функции, которые возвращают не значение, а значение в контейнере. Разбираем от лестницы if-ов до законов, do-нотации, трансформеров и честной цены абстракции.</description>
    </item>
    <item>
      <title>Неизменяемость: как работать с данными, ничего не меняя</title>
      <link>https://courses.digitable.life/post/functional-programming/02-immutability/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/functional-programming/02-immutability/</guid>
      <description>Почему запрет на изменение данных убирает целый класс багов, как обновлять неизменяемые структуры без квадратичного копирования и сколько это реально стоит в проде.</description>
    </item>
    <item>
      <title>Нотация: переменная, абстракция, аппликация и как читать выражения</title>
      <link>https://courses.digitable.life/post/lambda-calculus/01-syntax/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/lambda-calculus/01-syntax/</guid>
      <description>Весь синтаксис лямбда-исчисления — три конструкции и два соглашения о скобках; учимся читать выражения вслух и переводить их в стрелочные функции JavaScript и Python.</description>
    </item>
    <item>
      <title>Обработка ошибок в ФП: Option, Either, Result, накопление ошибок</title>
      <link>https://courses.digitable.life/post/functional-programming/10-error-handling/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/functional-programming/10-error-handling/</guid>
      <description>Почему исключения и null плохо масштабируются, как Option, Either и Result делают отказ частью типа, чем аппликативное накопление ошибок отличается от монадического короткого замыкания и сколько всё это стоит в проде.</description>
    </item>
    <item>
      <title>Парадигмы программирования: карта, история и как они связаны</title>
      <link>https://courses.digitable.life/post/paradigms/00-overview/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/paradigms/00-overview/</guid>
      <description>Обзорная статья трека: что такое парадигма как инженерное понятие, по каким осям парадигмы различаются, откуда они взялись исторически, как они смешиваются в реальных системах — и как читать остальные девять статей трека.</description>
    </item>
    <item>
      <title>Пары, списки и структуры данных из одних лямбд</title>
      <link>https://courses.digitable.life/post/lambda-calculus/06-pairs-and-lists/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/lambda-calculus/06-pairs-and-lists/</guid>
      <description>Как построить кортеж, запись и связный список, когда в языке есть только функции: пара Чёрча, два способа кодировать списки, полные раскрутки редукций и рабочий код на JavaScript и Python.</description>
    </item>
    <item>
      <title>Персистентные структуры данных и их реальная стоимость</title>
      <link>https://courses.digitable.life/post/functional-programming/12-persistent-data-structures/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/functional-programming/12-persistent-data-structures/</guid>
      <description>Как устроены внутри персистентные векторы, HAMT, finger tree и зипперы, почему амортизация ломается под персистентностью и сколько на самом деле стоят неизменяемые коллекции в проде.</description>
    </item>
    <item>
      <title>Рекурсия без имён: комбинатор неподвижной точки Y</title>
      <link>https://courses.digitable.life/post/lambda-calculus/07-recursion-and-y/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/lambda-calculus/07-recursion-and-y/</guid>
      <description>Как написать факториал в языке, где у функций нет имён: приём открытой рекурсии, вывод комбинатора Y с полной раскруткой редукций, его боевой вариант Z для JavaScript и Python и практические применения — мемоизация, трассировка, fix в Haskell.</description>
    </item>
    <item>
      <title>Рекурсия, хвостовые вызовы и как не переполнить стек</title>
      <link>https://courses.digitable.life/post/functional-programming/04-recursion/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/functional-programming/04-recursion/</guid>
      <description>Почему в ФП повторение делают рекурсией, как устроен стек вызовов, что такое хвостовой вызов и TCO, как превращать рекурсию в хвостовую аккумулятором, и что делать в языках без оптимизации хвостовых вызовов — трамплины, CPS, явный стек, мемоизация.</description>
    </item>
    <item>
      <title>Свободные и связанные переменные, подстановка и захват имён</title>
      <link>https://courses.digitable.life/post/lambda-calculus/02-variables-and-substitution/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/lambda-calculus/02-variables-and-substitution/</guid>
      <description>Разбираем, чем переменная-параметр отличается от переменной из внешнего мира, как правильно подставлять выражение вместо переменной и почему наивная замена букв ломает смысл программы.</description>
    </item>
    <item>
      <title>Стратегии вычисления: нормальный порядок, аппликативный, ленивость</title>
      <link>https://courses.digitable.life/post/lambda-calculus/08-evaluation-strategies/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/lambda-calculus/08-evaluation-strategies/</guid>
      <description>Почему одно и то же лямбда-выражение может завершиться или зациклиться в зависимости от того, какой редекс вы сократили первым — и как из этого выросли строгие языки, ленивые языки и мемоизированные thunk-и.</description>
    </item>
    <item>
      <title>Теория категорий в программировании: функторы, монады, F-алгебры, линзы</title>
      <link>https://courses.digitable.life/post/mathematics/10-category-theory-in-programming/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/mathematics/10-category-theory-in-programming/</guid>
      <description>Как абстрактная чепуха превращается в рабочий инструмент: категория типов, законы функтора и монады, аппликативная валидация, катаморфизмы вместо ручной рекурсии и линзы для неизменяемых структур — со строгими определениями и исполняемым кодом.</description>
    </item>
    <item>
      <title>Типизированное лямбда-исчисление и соответствие Карри-Ховарда</title>
      <link>https://courses.digitable.life/post/lambda-calculus/09-typed-lambda/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/lambda-calculus/09-typed-lambda/</guid>
      <description>Что происходит, когда к лямбда-исчислению приделывают типы: часть программ перестаёт компилироваться, зато оставшиеся гарантированно завершаются — и внезапно оказывается, что система типов и математическая логика это буквально одно и то же.</description>
    </item>
    <item>
      <title>ФП в обычных языках: JavaScript, TypeScript, Python, Java, C#, Kotlin</title>
      <link>https://courses.digitable.life/post/functional-programming/15-fp-in-mainstream-languages/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/functional-programming/15-fp-in-mainstream-languages/</guid>
      <description>Как применять функциональные идеи в языках, которые не задумывались функциональными: что каждый из шести языков даёт из коробки, что приходится эмулировать, чем именно за это платят и в каком порядке внедрять</description>
    </item>
    <item>
      <title>Функторы и аппликативы: контейнеры, к которым применяют функции</title>
      <link>https://courses.digitable.life/post/functional-programming/07-functors-and-applicatives/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/functional-programming/07-functors-and-applicatives/</guid>
      <description>Как из повторяющегося кода «распаковать — применить — запаковать» рождаются функтор и аппликатив, зачем нужны их законы и почему валидация формы с накоплением всех ошибок сразу — это аппликатив, а не монада.</description>
    </item>
    <item>
      <title>Функции первого класса и высшего порядка, замыкания</title>
      <link>https://courses.digitable.life/post/functional-programming/03-higher-order-functions/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/functional-programming/03-higher-order-functions/</guid>
      <description>Как превращение функции в обычное значение убирает дублирование кода, откуда берутся map/filter/reduce, что на самом деле хранит замыкание и сколько всё это стоит в проде</description>
    </item>
    <item>
      <title>Функциональное программирование: карта курса, история и зачем это нужно</title>
      <link>https://courses.digitable.life/post/functional-programming/00-overview/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/functional-programming/00-overview/</guid>
      <description>Вводная статья курса по ФП: какую конкретную боль решает функциональный стиль, откуда он взялся, что даёт на практике, сколько стоит — и как устроен этот курс из 17 статей.</description>
    </item>
    <item>
      <title>Функциональное программирование: чистота, неизменяемость, композиция</title>
      <link>https://courses.digitable.life/post/paradigms/03-functional/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/paradigms/03-functional/</guid>
      <description>Как работает функциональная парадигма изнутри: ссылочная прозрачность, персистентные структуры данных, композиция, свёртки, эффекты как значения — и как это применяют в промышленном коде.</description>
    </item>
    <item>
      <title>Функциональные паттерны: функторы, монады, линзы, комбинаторы</title>
      <link>https://courses.digitable.life/post/design-patterns/05-functional-patterns/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/design-patterns/05-functional-patterns/</guid>
      <description>Как устроен второй словарь паттернов — функции как значения, функторы и монады с их законами, аппликативная валидация, парсер-комбинаторы и линзы — с рабочим кодом, разбором сложности и честной ценой абстракции.</description>
    </item>
    <item>
      <title>Числа Чёрча: арифметика без чисел</title>
      <link>https://courses.digitable.life/post/lambda-calculus/05-numerals/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/lambda-calculus/05-numerals/</guid>
      <description>Как из одних только функций получаются натуральные числа, сложение, умножение, степень и коварный предшественник — с полной раскруткой каждой редукции и рабочим кодом на JavaScript и Python.</description>
    </item>
    <item>
      <title>Чистые функции, побочные эффекты и почему это меняет всё</title>
      <link>https://courses.digitable.life/post/functional-programming/01-pure-functions/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/functional-programming/01-pure-functions/</guid>
      <description>Что такое чистота на самом деле, какие бывают побочные эффекты, что чистота даёт (тесты, мемоизация, параллелизм, рефакторинг) и сколько она реально стоит.</description>
    </item>
    <item>
      <title>Эффекты и ввод-вывод: как чистый код общается с грязным миром</title>
      <link>https://courses.digitable.life/post/functional-programming/13-effects-and-io/</link>
      <pubDate>Thu, 16 Jul 2026 10:00:00 +0300</pubDate>
      <guid>https://courses.digitable.life/post/functional-programming/13-effects-and-io/</guid>
      <description>Программа без эффектов бесполезна. Разбираем, как ФП решает эту проблему: от разделения на ядро и оболочку до эффекта-как-значения, Free-монад, tagless final, эффект-систем ZIO/Effect и алгебраических эффектов — с честной ценой каждого подхода.</description>
    </item>
  </channel>
</rss>
