Die Zustands-Monade

Wenn man nur den Inhalt einer Speicherstelle ändern will, dann braucht man nicht IO, sondern es reicht State.

import Control.Monad.State

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

evalState ( do tick ; tick ; get ) 0

Aufgabe: wie könnte die Implementierung aussehen?

data State s a = ??
instance Functor ( State s ) where 
instance Monad ( State s ) where



2009-11-20