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.