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

Аватар автора
Организованное программирование
Сегодня у нас в гостях вновь Александр Вершилов, который уже 15 лет пишет на Haskell. Мы продолжаем разговор про Haskell и переходим к той теме, на которой у многих разработчиков всё обычно ломается — IO, побочные эффекты и монады. Haskell регулярно называют «слишком сложным» языком. Чаще всего это происходит ровно в момент, когда разговор доходит до работы с внешним миром. До этого — чистые функции, композиция, красивая типизация. А дальше — «реальный мир», контексты вычислений и ощущение, что ты внезапно оказался в другой вселенной. В выпуске мы разобраели, почему в чистом языке вообще возникает проблема IO, что такое referential transparency и почему чтение файла её нарушает. Обсудили, зачем Haskell протаскивает через типы «токен реального мира», как устроен IO изнутри и почему это не встроенная магия компилятора, а обычная структура данных с чёткими правилами. Пошагово прошли через Maybe и Either, связывание вычислений, do-нотацию и законы монад, а затем сравнили этот подход с Result в Rust, async/await в JavaScript и обработкой ошибок в Go. Полезные ссылки: 00:00 — Монады без боли: почему их боятся и зря 00:59 — Переходим к практике: готовим среду и код 02:32 — Где в Haskell начинается «та самая сложность» 05:22 — Два пути работы с эффектами: хаос или контроль 13:56 — Кто реально выполняет ваш код? Роль интерпретатора 29:14 — Порядок вычислений: скрытая проблема ленивости 36:52 — Можно ли повторить Haskell в JavaScript? 48:14 — Самый простой пример работы с IO...

0/0


0/0

0/0

0/0

Скачать популярное видео

Популярное видео

0/0