IT戦記

プログラミング、起業などについて書いているプログラマーのブログです😚

Haskell の do は何を糖衣しているのか

注釈

まだまだ、Haskell 歴 5 日なので、多少間違っててても許してください。

do

これを
main =
    getChar >>= (\a -> (
    getChar >>= (\b ->
    putChar b)) >> (
    putChar a))
これにしている
main = do
    a <- getChar
    b <- getChar
    putChar b
    putChar a

do の役割は

>>= や >> という関数を縦に並べ易くすること

モナド

>>= や >> を定義するために存在する。いや。「定義する」じゃなくて、「定義を上書きする」ために存在する。