\begin{slide}{Fktl. Modellierg. von Zustandsänderungen}

wie schreibt man in Haskell auf die Konsole?
Das ist eine Zustandsänderung!
\begin{verbatim}
main =  putStrLn $ show $ take 20 nats
\end{verbatim}
es gibt eine Typschablone \verb|IO a|
für Aktionen mit Resultattyp \verb|a|.

\begin{verbatim}
main :: IO () -- entspr. "void" (kein Resultat)
readFile :: FilePath -> IO String
writeFile :: FilePath -> String -> IO ()
\end{verbatim}

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

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

\end{slide}
%%% Local Variables: 
%%% mode: latex
%%% TeX-master: t
%%% End: 
