Die IO-Monade

Modell: type IO a = State World a
aber ohne put und get.

readFile :: FilePath -> IO String
putStrLn :: String -> IO ()

main :: IO ()
main = do 
  cs <- readFile "foo.bar" ; putStrLn cs

Alle „Funktionen``, deren Resultat von der Außenwelt (Systemzustand) abhängt oder diesen ändert, haben Resultattyp IO ...

Am Typ einer Funktion erkennt man ihre möglichen Wirkungen bzw. deren garantierte Abwesenheit.



Johannes Waldmann 2011-01-18