我正在寻找一种在IO monad中使用mapAccumL的方法 - 类似于mapM的模拟,即使用这种类型的签名:
mapAccumLM :: (Monad m) => (a -> b -> m(a, c)) -> a -> [b] -> m(a, [c])
有什么简单的方法吗?
这基本上mapM
是StateT a IO
:
mapAccumLM f a xs = runStateT (mapM (StateT . f) xs) a
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
213 次 |
最近记录: |