Size: a a a

2020 November 23

JS

Jerzy Syrowiecki in Haskell
Maxim Koltsov
catch
 do
   lol
   kek
 \e -> do
   print e
пиши так

do
 lol
 kek
`catch` \e -> do
 print e
источник

MK

Maxim Koltsov in Haskell
а так работает что ли?
источник

MK

Maxim Koltsov in Haskell
по-моему ещё большее уродство
источник

JS

Jerzy Syrowiecki in Haskell
Alexander Vershilov
Ты же понимаешь, что "уродство" это твоя личная субьективная оценка?
конечно. я написал для того, чтобы обменяться оценками с другими людьми
источник

G

Gradi in Haskell
Добрый день. Я опять с вопросом "Как достать людей из монады"
funcA :: ReaderT env m [a]
funcA = map funcB [1..]

funcB :: ReaderT env m a
funcB = undefined
Как в funcA превратить` [ReaderT env m a] ` в ReaderT env m [a] ? Нужно использовать runReader?

PS. m у меня IO.
источник

MK

Maxim Koltsov in Haskell
sequence
источник

MK

Maxim Koltsov in Haskell
он же traverse id
источник

к

кана in Haskell
не, тут обратная операция
источник

A

Aleksandr Khristenko in Haskell
Alexander Vershilov
case () of
  _ | обошёлся -> ...
Хм, в паттерн матчинге можно гуарды?
источник

MK

Maxim Koltsov in Haskell
кана
не, тут обратная операция
разве?
источник

MK

Maxim Koltsov in Haskell
sequence :: [m a] -> m [a]
источник

MK

Maxim Koltsov in Haskell
а ещё можно использовать mapM funcB сразу
источник

к

кана in Haskell
а хм не так понял, я думал из того что написано сделать список
источник

AV

Alexander Vershilov in Haskell
Aleksandr Khristenko
Хм, в паттерн матчинге можно гуарды?
всё что можно в multiwayif можно
источник

MK

Maxim Koltsov in Haskell
sequence . map f = mapM f = traverse f
источник

к

кана in Haskell
Gradi
Добрый день. Я опять с вопросом "Как достать людей из монады"
funcA :: ReaderT env m [a]
funcA = map funcB [1..]

funcB :: ReaderT env m a
funcB = undefined
Как в funcA превратить` [ReaderT env m a] ` в ReaderT env m [a] ? Нужно использовать runReader?

PS. m у меня IO.
не понял все таки, а какие данные уже есть, и что нужно получить?
источник

G

Gradi in Haskell
Maxim Koltsov
а ещё можно использовать mapM funcB сразу
mapM помог. Спасибо.
источник

JS

Jerzy Syrowiecki in Haskell
Maxim Koltsov
а так работает что ли?
ну, не совсем. исправил

main = do
 throwIO $ userError "4"
 do
   throwIO $ userError "7"
   `catch` \(e :: SomeException) -> do
     putStrLn $ "caught " ++ show e
 throwIO $ userError "10"
источник

MK

Maxim Koltsov in Haskell
Jerzy Syrowiecki
ну, не совсем. исправил

main = do
 throwIO $ userError "4"
 do
   throwIO $ userError "7"
   `catch` \(e :: SomeException) -> do
     putStrLn $ "caught " ++ show e
 throwIO $ userError "10"
а несколько действий перед catch можно?
источник

к

кана in Haskell
этот кетч же будет только к одной строчке применяться
источник