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

Подскажите, как можно вывести Either в качестве IOException? Пример: main ::

IO ()
main = run `catchError` handler where
handler e = putStrLn $ "MY Error: " ++ show e
run = do
let args = eitherDecode :: Either String Args
either error print args

Однако в этом случае catchError не ловит результат после вызова error

5 ответов

1 просмотр
Alex-Mayorov Автор вопроса

А почему это лучше, чем? main :: IO () main = run `catchError` handler where handler e = putStrLn $ "MY Error: " ++ show e run = do let args = eitherDecode :: Either String Args either fail print args

Alex-Mayorov Автор вопроса
Alex Mayorov
А почему это лучше, чем? main :: IO () main = run...

Как можно избежать префикса user error, используя MonadFail IO? Пример: main :: IO () main = run `catchError` handler where handler = putStrLn . show run = do let args = eitherDecode :: Either String Args either fail print args В ошибках получается вывод: user error (My Error), тогда как я хочу просто My Error.

Alex Mayorov
Как можно избежать префикса user error, используя ...

Ну либо не использовать fail либо не использовать show

Вообще не совсем понятно почему ты хочешь бросать тут именно IOError, тут ведь больше подошло бы какое-то свое исключение, которое бы описывало что у тебя произошло, не?

Alex-Mayorov Автор вопроса

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

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

А как старый хаскел с новым стыковать ? потому как тут работает https://play.haskell.org/saved/C3xpMzcd, а вот тут https://stepik.org/lesson/7602/step/9?unit=1473 нет ошибка C...
Fedor
131
что насчет пагинга? на осдеве непонятно(
Vi Chapmann 🪙
26
Народ, кто шарит в расширенных разделах (EBR/EPR) на дисках с разметками MBR? Везде пишут (в вики рус/англ) в частности + другие источники смотрел, что первый сектор расширенн...
Eugene Krasnikov (ᴊɪɴ x)
1
Вопрос я правильно понимаю что в коде newtype ArrowMap k v = ArrowMap { getArrowMap :: k -> Maybe v } getArrowMap есть функция типа k -> Maybe v, если да, то не понимаю задач...
Fedor
64
Ребят, что лучше для реверса: гидра или ида?
En Vind Av Sorg
26
Делаю велосипед логгер. К сообщению хочу прикрутить некоторую информацию, типа, кем отправлено, какой уровень, и всякое такое. И тут подумалось мне, почему бы не хранить весь...
Serjone
24
Как Вы считаете нормально ли в двадцатых годах 21 века в ВУЗах Российской Федерации обучать студентов работе с TASM? Не слишком ли это "архаично"? (Если оффтоп или флейм для э...
Spiker01
52
Комрады, хотел уточнить. Проперть в OnDestroy юнита-хозяина по-прежнему доступна? И еще уточнение: finalization юнита наступает раньше или позже OnDestroy?
Ed Doc
48
Продолжая диалог про свифт в проде – сейчас возник вопрос в активном наборе бекендеров. В основном в нашей компании мы фанаты Java Spring и полностью ей довольны. Однако найм ...
Guseyn
27
Где-то есть статьи, как писать на OCaml после Kotlin (ну или похожей направленности)? Я привык к интерфейсам и наследованию классов, а здесь это выглядит совершенно не так.
Раскопки Майтрейи Коц
6
Карта сайта