wie schreibt man in Haskell auf die Konsole? Das ist eine Zustandsänderung!
main = putStrLn $ show $ take 20 natses 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.