Monaden

class Monad m where
    return :: a -> m a
    (>>=)  :: m a -> (a -> m b) -> m b
Wenn m ein Endo-Funktor ist, dann gilt in der Kleisli-Kategorie von m:

Identität ida ist return :: a -> m a

Komposition ist:

import Control.Monad

(>=>) :: Monad m
    => (a -> m b) -> (b -> m c) -> (a -> m c)
f (>=>) g = \ x -> ( f x ) >>= g



Johannes Waldmann 2011-01-18