liftM
code:hs
liftM :: (Monad m) => (a -> b) -> m a -> m b
fmap :: (Functor f) => (a -> b) -> f a -> f b
Monadにのみ適用できるfmapみたいなもの
pureに対するreturnと同じ関係
「lifting」の捉え方
普通の関数a -> bを
モナド値m a
に適用したいので、
普通の関数をモナドレベルに持ち上げてから適用している
下図がイメージしやすい
https://gyazo.com/db28c5ea39d6ff0eec736eb4c3fb4e3c https://qiita.com/7shi/items/4408b76624067c17e933#liftm
引数が2つ以上ある場合