1

私は IO モナドで mapAccumL を使用する方法を探しています - mapM のアナログのようなもの、つまり次の型シグネチャを使用します:

mapAccumLM :: (Monad m) => (a -> b -> m(a, c)) -> a -> [b] -> m(a, [c])

これを行う簡単な方法はありますか?

4

2 に答える 2

6

これは基本的mapMにオンStateT a IOです:

mapAccumLM f a xs = runStateT (mapM (StateT . f) xs) a
于 2013-08-15T16:23:04.797 に答える