Haskell для начинающих: разбираем IO, Maybe и do-нотацию | Александр Вершилов #75
Автор: Организованное программирование | Кирилл Мокевнин
Загружено: 2026-02-22
Просмотров: 2058
Описание:
Сегодня у нас в гостях вновь Александр Вершилов, который уже 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_45...
🔹 Telegram-канал Организованного Программирования: https://t.me/orgprog
🔹Хекслет Клуб в Telegram https://t.me/HexletClubBot
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 — Заключение: монады меняют мышление
#функциональноепрограммирование #haskell #fp #программирование #языкипрограммирования #itподкаст #typeclasses #архитектура
Haskell для начинающих: разбираем IO, Maybe и do-нотацию | Александр Вершилов #75
Повторяем попытку...
Доступные форматы для скачивания:
Скачать видео
-
Информация по загрузке: