\begin{slide}{Die Zustands-Monade}

Implementierung:
\begin{verbatim}
data State s a = State ( s -> ( s, a ))
instance Monad ( State s ) where ...
\end{verbatim}

Benutzung:
\begin{verbatim}
import Control.Monad.State

tick :: State Integer ()
tick = do c <- get ; put $ c + 1

evalState ( do tick ; tick ; get ) 0
\end{verbatim}


\end{slide}
