Size: a a a

2021 May 18

NI

Nick Ivanych in Haskell
Но строгое оптимизируется лучше!!!
источник

KV

Kirill Valyavin in Haskell
Надо навернуть трансформер с монадой, которая это умеет
источник

к

кана in Haskell
не понимаю что имеется в виду
источник

[

[BRM]White Rabbit in Haskell
если smth == 0 то значение функции x
иначе - продолжить дальше идти по ду-нотации
источник

[

[BRM]White Rabbit in Haskell
у меня слишком много вложенных if-then-else получается
источник

к

кана in Haskell
посмотри на имплиситы
источник

к

кана in Haskell
возможно в твоем кейсе это будет удобнее
источник

[

[BRM]White Rabbit in Haskell
не совсем понимаю, что именно смотреть
источник

к

кана in Haskell
f :: (?x :: Int) => IO ()
f | ?x == 0 = pure ()
f = do
 print 1
источник

к

кана in Haskell
implicit params
источник

KV

Kirill Valyavin in Haskell
Ранний выход из процедуры, очевидно же
источник

к

кана in Haskell
а, нет, не очевидно было, вообще не распознал "вернуть параметр из монады" как императивный ранний выход
источник

к

кана in Haskell
всегда можно рано выйти через ExceptT
источник

[

[BRM]White Rabbit in Haskell
звучит не очень
источник

KV

Kirill Valyavin in Haskell
Ещё есть ContT
источник

к

кана in Haskell
хм, почему
источник

к

кана in Haskell
вроде бы в этом весь смысл ExceptT
источник

к

кана in Haskell
someAction :: MonadReader Int m => m Int

f :: Reader Int Int
f = either id id $ runExceptT do
 x <- ask
 when (x == 0) do throw 42
 someAction
источник

[

[BRM]White Rabbit in Haskell
А с ReaderT оно работает?
источник

к

кана in Haskell
да
источник