
Организованное программирование #75 Haskell для начинающих: разбираем IO, Maybe и do-нотацию | Александр Вершилов
Feb 22, 2026
Александр Вершилов, разработчик с 15-летним опытом на Haskell. Разбирает, почему в чистом языке возникает проблема IO и как Haskell описывает побочные эффекты через контексты. Говорит о Maybe и связывании вычислений, объясняет do-нотацию и законы монад. Сравнивает подходы с async/await, Result в Rust и обработкой ошибок в других языках.
AI Snips
Chapters
Transcript
Episode notes
Эффекты как данные дают контроль над побочными явлениями
- Haskell решает проблему побочных эффектов через представление эффектов как структуры данных, а не скрытые вызовы рантайма.
- Это даёт возможность описывать вычисления чисто, а выполнять их отдельно интерпретатором, сохраняя ссылочную прозрачность.
Опишите эффект и интерпретируйте его отдельно
- Не пытайтесь «вытаскивать» эффект наружу — описывайте вычисления и оставляйте интерпретацию рантайму или специально написанному интерпретатору.
- Используйте контейнеры эффектов (IO, Maybe, Either) чтобы явно протаскивать ограничения вверх по стеку.
Маркируйте побочные эффекты в типах
- Делайте эффектные операции видимыми в типах, чтобы компилятор заставлял вас с ними работать явно.
- Это уменьшает неожиданные ошибки рантайма и помогает понимать, какие части кода могут вызывать побочные эффекты.
