169 похожих чатов

Т.Е. для ExceptT есть преимущество, что ты можешь сделать asum

на список результатов и то что знаешь какие исключения обрабатывать тут не надо. Так?

1 ответов

11 просмотров

Сам по себе ExceptT — очень полезный трансформер. Всё зависит от того, в каком контексте использовать ExceptT. Если вместе с IO, то есть различные проблемы (какие-то из них уже упомянули в треде выше). Но в контексте чистых вычислений (например вместе с монадами Reader или State) очень удобно, так как позволяет создавать более удобные интерфейсы. Я даже блог пост писал с одним примером использования ExceptT + State https://kowainik.github.io/posts/2018-11-18-state-pattern-matching Проблемы ExceptT + IO: 1. Два источника ошибок, нужно в двух местах ловить. 2. Поведение ExceptT можно проэмулировать через IO при желании. Это даже будет более эффективно, так как добавление ExceptT приносит некоторый оверхед: на каждом >>= будет паттерн мэтчинг по Either (просто из-за того, как работает ExceptT). Я бенчмарки не писал, не видел, насколько будет медленней (в реальной жизни это точно не основная проблема), но всё же. 3. Если в трансформере монад есть ExcepT, то некоторые инстансы нельзя написать. Например, сейчас в экосистеме Haskell очень популярный модный подход с ReaderT IO и абстракциями вроде MonadUnliftIO. Если в трансформере появляется ExceptT, то эти инстансы уже не написать и не самой плохой частью экосистемы пользоваться не получится.

Похожие вопросы

Обсуждают сегодня

Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Ну вот просто даже давайте вот как. Какой нибудь конкретный кейс, можете в пример привести, где бч работает и приносит прикладную пользу, а не просто что бы было? Не крипту.
Alexander Andreev
22
объясните пожалуйста, почему функция не работает должным образом? вроде должно брать активное окно сравнивать его размер с размером экрана, и если есть совпадение = true прове...
JF
12
лучше скажите, причём тут паскаль?
Alexey Kulakov
36
> Копаем глубже > Следующий момент был, когда я спросил его, знает ли он JavaScript. Он ответил, что его учили работать с C#. Я тоже в университете писал на C#, но даже там мн...
Oleg Volkov
4
Гляньте, че бывает: Сегодня по одному проекту одной вебстудии делал проект небольшой, на их хостинге. На Modx revo. В определенный момент , работая в админке, вдруг перестал р...
Artem
7
И никого не интересует какие пакеты кто использует. ((% Заходишь на сайт симфони и видишь поддержку Украины - по законам РФ это ж экстремизм. Только никто не отказывается от с...
Am Ambrion
11
Чтобы перехватить все нажимания буков на форме, надо хук ставить? Пробовал на форме ОнКейДаун, оно ловит клаву если фокус не на компоненте с вводом текста
Serjone
15
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
8
Народ! Впервые клиенту пришло письмо от РКН, у вас, дескать, есть яндекс метрика, а нигде не написано, что вы ее юзаете. Никто не сталкивался?
Sasha Beep
14
Карта сайта