Parser als Monade (Implementierung)

instance Monad ( Parser c ) where
    return x = Parser $ \ s -> [ ( x, s ) ]
    Parser f >>= g = Parser $ \ s -> do
        ( a, t ) <- f s 
        let Parser h = g a
        h t

beachte: das do gehört zur List-Monade



2009-11-20