在阅读了一些非常基本的haskell后,我知道如何使用bind "链接"monadic动作,如:
echo = getLine >>= putStrLn
Run Code Online (Sandbox Code Playgroud)
(>>=) 运算符在这种方式下非常方便,但是如果我想链接带有多个参数的monadic动作(或仿函数)呢?
鉴于(>>=) :: m a -> (a -> m b) -> m b它似乎(>>=)只能提供一个论点.
例如,writeFile接受两个参数(a FilePath和内容).假设我有一个返回a的monadic动作FilePath,以及另一个返回String写入的动作.如何在writeFile不使用do-notation的情况下将它们组合在一起,但是以一般方式?
是否有任何类型的功能: m a -> m b -> (a -> b -> m c) -> m c可以做到这一点?