2006-12-09 Haskell の do は何を糖衣しているのか Haskell 注釈 まだまだ、Haskell 歴 5 日なので、多少間違っててても許してください。 do は これを main = getChar >>= (\a -> ( getChar >>= (\b -> putChar b)) >> ( putChar a)) これにしている main = do a <- getChar b <- getChar putChar b putChar a do の役割は >>= や >> という関数を縦に並べ易くすること モナドは >>= や >> を定義するために存在する。いや。「定義する」じゃなくて、「定義を上書きする」ために存在する。