liftIOって結局何のためにあるのかわからないので調べていたらliftとliftIOの違いがわかり易かった。
RWHによれば
- fmap: 純粋な関数をファンクタのレベルに引き上げる
- liftM: 純粋な関数をモナドのレベルに引き上げる
- lift: モナドアクションを変換子層の一つ下のレベルから現在の層へあげる
liftIOはControl.Monad.IO.Class
class (Monad m) => MonadIO m where -- | Lift a computation from the 'IO' monad. liftIO :: IO a -> m a
参考
RWH3週目終了
ちょっと前からReal World Haskell 3周目を読んでいて、最近読み終わった。
読み始める前のポストイット(理解が曖昧なところに貼ってある)
読後(かなり減った)
すごいHaskellのおかげで理解がすすんだとことが結構あって、それをテコにしてRWHの内容がすんなり理解できたりしたのが大きかったかも。