Monadic programming is a way to write functional programs. It forms a separate paradigm from classic FunctionalProgramming, because it provides a different way of structuring programs.
Here are some pointers:
- "What the hell are Monads?" (1999) by NoelWinstanley (http://www.cs.pdx.edu/~antoy/Courses/TPFLP/lectures/MONADS/Noel/research/monads.html)
- "Monads for the Working Haskell Programmer -- a short tutorial" by TheodoreNorvell (http://www.engr.mun.ca/~theo/Misc/haskell_and_monads.htm)
- "All About Monads -- A comprehensive guide to the theory and practice of monadic programming in Haskell" (http://www.nomaware.com/monads/html/index.html)
- MonadsInRuby -- http://moonbase.rydia.net/mental/writings/programming/monads-in-ruby/00introduction.html
A monad is formally defined here: http://wombat.doc.ic.ac.uk/foldoc/foldoc.cgi?monad
In plain terms, a monad is a set of rules that enforce regular behavior but broad enough to allow most computational processes to be expressed as a monad.
The wikipedia entry: http://en.wikipedia.org/wiki/Monads_in_functional_programming
See OnMonads and MonadTransformer. Also see ProgrammingParadigm.
has BrokenLinks