Haskell: monad stack bind with IO and []
Haskell: monad stack bind with IO and []
我有:
stuff :: IO [String]
doThings :: String -> IO [()]
我想
stuff >>= doThings
但我的类型不对。我基本上想做一个解除绑定,但我尝试的一切都是微妙的错误。
使用您的原始类型,您可以:
stuff >>= mapM_ doThings
如果您将 doThings 的类型更改为 doThings :: String -> IO ()
,这也有效
如果你有很多这样的功能,这是ListT
的教科书用例:
main = runListT $ do
string <- ListT stuff
ListT $ doThings string
我有:
stuff :: IO [String]
doThings :: String -> IO [()]
我想
stuff >>= doThings
但我的类型不对。我基本上想做一个解除绑定,但我尝试的一切都是微妙的错误。
使用您的原始类型,您可以:
stuff >>= mapM_ doThings
如果您将 doThings 的类型更改为 doThings :: String -> IO ()
如果你有很多这样的功能,这是ListT
的教科书用例:
main = runListT $ do
string <- ListT stuff
ListT $ doThings string