Monade (informatique)
Un article de Wikipédia, l'encyclopédie libre.
Une monade est une structure de données avec un état. Elle sert typiquement à modéliser un aspect du monde extérieur au programme. Cela permet aux langages de programmation fonctionnelle de demeurer purs, c'est-à-dire sans effets de bord. La monade encapsule l'état du monde extérieur et est passée comme paramètre des opérations qui ont besoin de maintenir un état (un analyseur syntaxique, par exemple).
Les monades sont notamment utilisées dans le langage de programmation Haskell pour les entrées/sorties. Dans Haskell, le programme principal, main, est une monade :
*Main> :t main main :: IO ()
Son type est donc IO. De même, toute fonction qui fait des entrées-sorties est une monade :
*Main> :t putStr putStr :: String -> IO ()
putStr prend une chaîne de caractères en paramètres et le résutat est une monade.
[modifier] Voir aussi
[modifier] Liens externes
- (en) A (hopefully) painless introduction to monads
- (en) What the hell are Monads?
- (en) You Could Have Invented Monads! (And Maybe You Already Have.)
- (en) All About Monads
- (en) Monads as Computation
- (en) Monads as Containers
- (en) Monads for the Working Haskell Programmer
- (en) "Monads for Functional Programming" par Philip Wadler
- (en) A tour of the Haskell Monad functions par Henk-Jan van Tuyl
- (en) The Haskell Programmer's Guide to the IO Monad — Don't Panic
- (en) Monads in Ruby
- (en) Monads in Python
- (en) Notions of Computation and Monads par Eugenio Moggi
- (en) Introduction to Haskell, Part 3: Monads