DigitableCourses
База знаний

Тема: Функциональное Программирование

33 материалов в этой теме.

Материалы

12 на странице
Статья

Стратегии вычисления: нормальный порядок, аппликативный, ленивость

Почему одно и то же лямбда-выражение может завершиться или зациклиться в зависимости от того, какой редекс вы сократили первым — и как из этого выросли строгие языки, …

#лямбда-исчисление#функциональное программирование#ленивые вычисления
21 мин
Статья

Свободные и связанные переменные, подстановка и захват имён

Разбираем, чем переменная-параметр отличается от переменной из внешнего мира, как правильно подставлять выражение вместо переменной и почему наивная замена букв ломает …

#лямбда-исчисление#функциональное программирование#замыкания
19 мин
Статья

Рекурсия, хвостовые вызовы и как не переполнить стек

Почему в ФП повторение делают рекурсией, как устроен стек вызовов, что такое хвостовой вызов и TCO, как превращать рекурсию в хвостовую аккумулятором, и что делать в …

#функциональное программирование#рекурсия#хвостовая рекурсия
21 мин
Статья

Рекурсия без имён: комбинатор неподвижной точки Y

Как написать факториал в языке, где у функций нет имён: приём открытой рекурсии, вывод комбинатора Y с полной раскруткой редукций, его боевой вариант Z для JavaScript и …

#лямбда-исчисление#рекурсия#комбинаторы
21 мин
Статья

Персистентные структуры данных и их реальная стоимость

Как устроены внутри персистентные векторы, HAMT, finger tree и зипперы, почему амортизация ломается под персистентностью и сколько на самом деле стоят неизменяемые …

#функциональное программирование#структуры данных#неизменяемость
26 мин
Статья

Пары, списки и структуры данных из одних лямбд

Как построить кортеж, запись и связный список, когда в языке есть только функции: пара Чёрча, два способа кодировать списки, полные раскрутки редукций и рабочий код на …

#лямбда-исчисление#структуры данных#функциональное программирование
22 мин
Статья

Парадигмы программирования: карта, история и как они связаны

Обзорная статья трека: что такое парадигма как инженерное понятие, по каким осям парадигмы различаются, откуда они взялись исторически, как они смешиваются в реальных …

#парадигмы#проектирование#функциональное программирование
18 мин
Статья

Обработка ошибок в ФП: Option, Either, Result, накопление ошибок

Почему исключения и null плохо масштабируются, как Option, Either и Result делают отказ частью типа, чем аппликативное накопление ошибок отличается от монадического …

#функциональное программирование#обработка ошибок#монады
21 мин
Статья

Нотация: переменная, абстракция, аппликация и как читать выражения

Весь синтаксис лямбда-исчисления — три конструкции и два соглашения о скобках; учимся читать выражения вслух и переводить их в стрелочные функции JavaScript и Python.

#лямбда-исчисление#синтаксис#функциональное программирование
16 мин
Статья

Неизменяемость: как работать с данными, ничего не меняя

Почему запрет на изменение данных убирает целый класс багов, как обновлять неизменяемые структуры без квадратичного копирования и сколько это реально стоит в проде.

#функциональное программирование#неизменяемость#структуры данных
17 мин
Статья

Монады без страха: что это на самом деле и зачем

Монада — не философия, а ответ на конкретную боль: как соединять функции, которые возвращают не значение, а значение в контейнере. Разбираем от лестницы if-ов до законов, …

#функциональное программирование#монады#композиция
18 мин
Статья

Лямбда-исчисление Чёрча: зачем оно программисту и что это вообще такое

Язык программирования из трёх правил, придуманный до появления компьютеров: зачем он нужен практикующему разработчику и как читать первые редукции.

#лямбда-исчисление#функциональное программирование#теория вычислений
12 мин