Организованное программирование

#75 Haskell для начинающих: разбираем IO, Maybe и do-нотацию | Александр Вершилов

Организованное программирование

Show Notes

Сегодня у нас в гостях вновь Александр Вершилов, который уже 15 лет пишет на Haskell. Мы продолжаем разговор про Haskell и переходим к той теме, на которой у многих разработчиков всё обычно ломается — IO, побочные эффекты и монады. Haskell регулярно называют «слишком сложным» языком. Чаще всего это происходит ровно в момент, когда разговор доходит до работы с внешним миром. До этого — чистые функции, композиция, красивая типизация. А дальше — «реальный мир», контексты вычислений и ощущение, что ты внезапно оказался в другой вселенной. В выпуске мы разобраели, почему в чистом языке вообще возникает проблема IO, что такое referential transparency и почему чтение файла её нарушает. Обсудили, зачем Haskell протаскивает через типы «токен реального мира», как устроен IO изнутри и почему это не встроенная магия компилятора, а обычная структура данных с чёткими правилами. Пошагово прошли через Maybe и Either, связывание вычислений, do-нотацию и законы монад, а затем сравнили этот подход с Result в Rust, async/await в JavaScript и обработкой ошибок в Go. Полезные ссылки: Twitter - https://x.com/qnikst Подписывайтесь на канал «Организованное программирование» в Telegram: https://ttttt.me/orgprog – Список подкаст-платформ (Apple Podcast, Google Podcast, Spotify, Яндекс.Музыка и другие): https://podcast.ru/1734325321 – Смотреть в ВК Видео: https://vkvideo.ru/video-224967259_456239224 🔹 Telegram-канал Организованного Программирования: https://t.me/orgprog 🔹Хекслет Клуб в Telegram https://t.me/HexletClubBot #функциональноепрограммирование #haskell #fp #программирование #языкипрограммирования #itподкаст #typeclasses #архитектура

Haskell для начинающих: разбираем IO, Maybe и do-нотацию | Александр Вершилов #75

(00:00) - — Монады без боли: почему их боятся и зря

(00:59) - — Переходим к практике: готовим среду и код

(02:32) - — Где в Haskell начинается «та самая сложность»

(05:22) - — Два пути работы с эффектами: хаос или контроль

(13:56) - — Кто реально выполняет ваш код? Роль интерпретатора

(29:14) - — Порядок вычислений: скрытая проблема ленивости

(36:52) - — Можно ли повторить Haskell в JavaScript?

(48:14) - — Самый простой пример работы с IO

(59:15) - — Пишем свою монаду и разбираем механику

(01:11:03) - — Где монады реально спасают: транзакции и сеть

(01:21:30) - — Maybe: убийца Null Pointer Exception

(01:43:18) - — Монада простыми словами: структура + связывание

(01:54:05) - — Promise — это монада или нет?

(02:03:14) - — Заключение: монады меняют мышление

★ Support this podcast ★

More from Организованное программирование

Oct 18, 2026

🔹 Присоединяйся к курсу «Системный дизайн» https://ru.hexlet.io/programs/system-design?utm_source=youtube

Oct 11, 2026

🔹 Присоединяйся к курсу «Системный дизайн» https://ru.hexlet.io/programs/system-design?utm_source=youtube

Oct 4, 2026

🔹 Присоединяйся к курсу «Системный дизайн» https://ru.hexlet.io/programs/system-design?utm_source=youtube🔹 Ускоряем разработку ПО с помощью AI: https://praxor.ru/?utm_source=youtube 🔹 Присоединяйся к курсам по AI в Хекслет: https://ru.hexlet.io/courses_artificial-intelligence?utm_source=youtube

Sep 27, 2026

🔹 Присоединяйся к курсу «Системный дизайн» https://ru.hexlet.io/programs/system-design?utm_source=youtube🔹 Ускоряем разработку ПО с помощью AI: https://praxor.ru/?utm_source=youtube 🔹 Присоединяйся к курсам по AI в Хекслет: https://ru.hexlet.io/courses_artificial-intelligence?utm_source=youtube

Sep 20, 2026

🔹 Присоединяйся к курсу «Системный дизайн» https://ru.hexlet.io/programs/system-design?utm_source=youtube

See all episodes →