В настоящее время я играю с основами Haskell и наткнулся на следующий «вариант использования»:
ghci> let divideTenBy x | x == 0 = Nothing | otherwise = Just (10 / x)
ghci> let composed = divideTenBy <=< return . (*10) <=< divideTenBy <=< return . (-)5
ghci> Just 5 >>= composed
Nothing
ghci> Just 10 >>= composed
Just (-0.5)
Так что я в основном смешиваю монадические и чистые функции здесь и объединяю их в монадическую функцию.Это работает, но return . (*10)
кажется мне обычно необходимой вещью, поэтому я испытываю желание определить сокращение для него, что-то вроде monadify = (return.)
.
Прежде чем я это сделаю, я 'Я хотел бы спросить, есть ли уже помощники, чтобы иметь дело с такой ситуацией.Конечно, я мог бы также быть смущен обо всем этом, и есть причины, почему это не должно быть сделано.Если это так, пожалуйста, скажите мне.