Size: a a a

2021 November 01

AP

Aleksei (astynax) Pi... in Haskell Start
read внутри делает error, если не смог распарсить
источник

AP

Aleksei (astynax) Pi... in Haskell Start
никакой Parser не сможет этот error воспринять как ожидаемую ошибку
источник

AP

Aleksei (astynax) Pi... in Haskell Start
case readMaybe ... of
 Nothing -> fail "foo" -- это ожидаемая ошибка парсинга, а не runtime error
 Just x -> pure x
источник

AP

Aleksei (astynax) Pi... in Haskell Start
две большие разницы
источник

AP

Aleksei (astynax) Pi... in Haskell Start
> data Failure = Failure deriving Show
> data Boom = Boom deriving Show
>
> instance FromJSON Failure where parseJSON _ = fail "Oops!"
> instance FromJSON Boom where parseJSON _ = error "Boom!"
>
> eitherDecode @Failure "42"
Left "Error in $: Oops!"
>
> eitherDecode @Boom "42"
*** Exception: Boom!
CallStack (from HasCallStack):
 error, called at <interactive>:17:44 in interactive:Ghci8
источник

AP

Aleksei (astynax) Pi... in Haskell Start
read посреди декодирования работает как error, как я уже говорил. А значит не будет никакой ошибки парсинга, будет runtime error и программа завершится
источник

E

Elijah in Haskell Start
пока объяснял что именно из того что вы мне объясняете я на самом деле не понимаю, я попытался воспроизвести проблему и не смог, значит проблема была в чем-то ином
источник

E

Elijah in Haskell Start
значит больше у меня вопросов нет
источник

E

Elijah in Haskell Start
если кому-то от этого легче, то я не собираюсь использовать read на продакшене)
источник

E

Elijah in Haskell Start
Чуть не забыл. Спасибо еще раз, за потраченные усилия)
источник

AP

Aleksei (astynax) Pi... in Haskell Start
👍
источник

JS

Jerzy Syrowiecki in Haskell Start
можно позанудствовать? дойдёт сначала до pure, pure передаст взрывоопасную задумку наружу, и уеду вне парсера она выстрелит
источник
2021 November 02

AP

Aleksei (astynax) Pi... in Haskell Start
Справедливо. Но хотел донести то, что если нужно остановить парсинг, то делать это нужно с помощью fail, а не error.

А если уж о ленивости говорить, то у aeson внутри много чего специально форсируется — во встроенных инстансах, например. Так что error часто стреляет скорее раньше, чем позже.
источник

A

Alexandr in Haskell Start
Подскажите, как добавить additional Keys к дефолтным в xmonad ?
источник

[

[BRM]White Rabbit in Haskell Start
keys = myKeys ++ additionalKeys
источник

A

Alexandr in Haskell Start
Что-то непонятно. Переформулирую. Можно ли myAdditionalKeys добавить в defaults? В текущей версии myAdditionalKeys не добавляются но и ошибки не возникает, почему то myKeys только остаются
источник

A

Alexandr in Haskell Start
Проблема скомбинировать key mapping из двух форматов - из дефолтного и из XMonad.Util.EZConfig (additionalKeysP)
источник

AP

Aleksei (astynax) Pi... in Haskell Start
У вас же два раза xmonad вызывается. До второго вызова никогда не доходит
источник

AP

Aleksei (astynax) Pi... in Haskell Start
xmonad $ docks defaults — вот это ральный xmonad
источник

AP

Aleksei (astynax) Pi... in Haskell Start
нельзя просто так взять и запустить второй рядом
источник