Vereinfachende Schreibweise für Aktionen
Fast wie imperative Programmierung (syntactic sugar):
echoLnR = getLine >>= putStrLn >> echoLnR -- ZU echoLnR = do s <- getLine putStrLn s echoLnR
Beispiel
-- Aktion, die drei Zeichen einliest, das mittlere Zeichen ignoriert und das erste und dritte als Paar zurückgibt: act :: IO (Char, Char) act = do x <- getChar getChar y <- getChar return (x,y) echo3 :: Int -> IO ()echo3 cnt = do putStr (show cnt ++ ": ") s <- getLine if s /= "" then do putStrLn $ show cnt ++ ": " ++ s echo3 (cnt + 1) else return ()