Fktl. Modellierg. von Zustandsänderungen

wie schreibt man in Haskell auf die Konsole? Das ist eine Zustandsänderung!

main =  putStrLn $ show $ take 20 nats
es gibt eine Typschablone IO a für Aktionen mit Resultattyp a.

main :: IO () -- entspr. "void" (kein Resultat)
readFile :: FilePath -> IO String
writeFile :: FilePath -> String -> IO ()

solche Aktionen kann man wie Daten verwalten, aber zur Ausführung muß man eine Reihenfolge angeben.

das Typsystem unterscheidet streng IO Int (Aktion) von Int (Wert), das garantiert Nebenwirkungsfreiheit und damit Sicherheit.



Johannes Waldmann 2008-01-23