Monade (informatica)
Da Wikipedia, l'enciclopedia libera.
Una monade è una struttura dati con uno stato associato. Tipicamente è utilizzata per modellare un aspetto del mondo esterno al programma e permette ai linguaggi funzionali di rimanere puri, cioè senza effetti collaterali. Una monade incapsula lo stato dell'ambiente esterno e viene passata come parametro alle operazioni che hanno bisogno di conservare uno stato (un analizzatore sintattico, per esempio).
Le monadi sono notoriamente utilizzate nel linguaggio di programmazione Haskell per le operazioni di input/output. Nell'Haskell, la funzione principale, il main, è una monade:
*Main> :t main main :: IO ()
Quindi il suo tipo è IO. Allo stesso modo, tutte le funzioni che fanno input/output sono monadi:
*Main> :t putStr putStr :: String -> IO ()
putStr prende una stringa come parametro e restituisce una monade, essa è quindi anche una funzione di ordine superiore (cioè una funzione che prende come input o restituisce come output un'altra funzione).