Nella programmazione funzionale, una monade è una struttura che esprime una classe di computazioni concatenabili.
Con l'ausilio di questa struttura, è possibile compiere, anche nei linguaggi puramente funzionali, operazioni in sequenza, un po' come avviene nei linguaggi imperativi o procedurali. Infatti, possono essere espresse, con l'ausilio delle monadi, fenomeni come gli effetti collaterali, l'IO, gestione dell'eccezioni.
In Haskell, la classe Monad viene espressa come segue[1]:
class Monad m where
(>>=) :: m a -> (a -> m b) -> m b
(>>) :: m a -> m b -> m b -- non strettamente necessaria
return :: a -> m a
fail :: String -> m a -- non strettamente necessaria
© MMXXIII Rich X Search. We shall prevail. All rights reserved. Rich X Search