mapM
Traversable型クラスのmethodの1つ
traverseのMonad版
定義
code:hs
mapM :: (Traversable t, Monad m) => (a -> m b) -> t a -> m (t b)
mapM f = unwrapMonad . traverse (WrapMonad . f)
こう書いても同じ
code:hs
mapM f xs = sequence $ fmap f xs
データ構造tと計算コンテナmを入れ替えている
a -> m bにt aを適用するとt (m b)になるが、結果はm (t b)である
mapM_
mamM_ :: (Monad m) => (a -> m b) -> [a] -> m [b]
code:hs
main = mapM_ print 1 .. 5
mapMと同じだが、アクションの戻り値は捨てる
https://xtech.nikkei.com/it/article/COLUMN/20120207/380292/?P=4
読もう