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 ()