[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
モナドクラスが何か まだ分からないが、 定義である (>>=) :: m a -> (a -> m b) -> m b return :: a -> m a
に強引に当てはめてみた。
--------------------------------
getContents :: IO String putStrLn :: String -> IO ()
●bind
getContents >>= putStrLn 返し値 [IO String] [String -> IO ()] [IO ()] m a a m b m b
●return 返し値 return String IO String a m a
return の場合、IO つまり m が何か すぐには決まらないので >>= bind されることで、どのモナドをくっつけるかが決まる ということなのか?
ようやく、見えてきた。
http://www.ice.nuie.nagoya-u.ac.jp/~h043078b/wiki/wiki.cgi?page=Monad#p2