Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Haskell
Wiki community
Recent changes
Random page
HaskellWiki
Search
Search
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
Tutorials
(section)
Page
Discussion
English
Read
Edit
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
View history
General
What links here
Related changes
Special pages
Page information
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Using monads== ;[http://www.haskell.org/wikiupload/c/c6/ICMI45-paper-en.pdf How to build a monadic interpreter in one day] (PDF) :By Dan Popa. A small tutorial on how to build a language in one day, using the Parser Monad in the front end and a monad with state and I/O string in the back end. Read it if you are interested in learning: :# language construction and :# interpreter construction ;[[Monad Transformers Explained]] ;[[MonadCont under the hood]] :A detailed description of the ''Cont'' data type and its monadic operations, including the class ''MonadCont''. ;[http://en.wikipedia.org/wiki/Monads_in_functional_programming Article on monads on Wikipedia] ;[[IO inside]] page :Explains why I/O in Haskell is implemented with a monad. ;[http://stefan-klinger.de/files/monadGuide.pdf The Haskell Programmer's Guide to the IO Monad - Don't Panic.] :By Stefan Klinger. This report scratches the surface of category theory, an abstract branch of algebra, just deep enough to find the monad structure. It seems well written. ;[http://web.archive.org/web/20160418173441/https://karczmarczuk.users.greyc.fr/TEACH/Doc/monads.html Systematic Design of Monads] :By John Hughes and Magnus Carlsson. Many useful monads can be designed in a systematic way, by successively adding facilities to a trivial monad. The capabilities that can be added in this way include state, exceptions, backtracking, and output. Here we give a brief description of the trivial monad, each kind of extension, and sketches of some interesting operations that each monad supports. ;[[Simple monad examples]] See also: * the [[Monad]] HaskellWiki page * [[Research papers/Monads and arrows]]. * [[Blog articles#Monads |Blog articles]] * [[Monad tutorials timeline]] ===Tutorials=== ''The comprehensive list is available at [[Monad tutorials timeline]].'' ;[http://mvanier.livejournal.com/3917.html Mike Vanier's monad tutorial] :Recommended by David Balaban. ;[[All About Monads]], [http://www.sampou.org/haskell/a-a-monads/html/index.html モナドのすべて] :By Jeff Newbern. This tutorial aims to explain the concept of a monad and its application to functional programming in a way that is easy to understand and useful to beginning and intermediate Haskell programmers. Familiarity with the Haskell language is assumed, but no prior experience with monads is required. ;[[Monads as computation]] :A tutorial which gives a broad overview to motivate the use of monads as an abstraction in functional programming and describe their basic features. It makes an attempt at showing why they arise naturally from some basic premises about the design of a library. ;[[Monads as containers]] :A tutorial describing monads from a rather different perspective: as an abstraction of container-types, rather than an abstraction of types of computation. ;[http://web.archive.org/web/20140821053740/https://www.grabmueller.de/martin/www/pub/Transformers.en.html Monad Transformers Step by Step] :By Martin Grabmüller. A small tutorial on using monad transformers. In contrast to others found on the web, it concentrates on using them, not on their implementation. ;[[What a Monad is not]] ;[http://noordering.wordpress.com/2009/03/31/how-you-shouldnt-use-monad/ How you should(n’t) use Monad] ;[http://www-users.mat.uni.torun.pl/~fly/materialy/fp/haskell-doc/Monads.html What the hell are Monads?] :By Noel Winstanley. A basic introduction to monads, monadic programming and IO. This introduction is presented by means of examples rather than theory, and assumes a little knowledge of Haskell. ;[http://www.engr.mun.ca/~theo/Misc/haskell_and_monads.htm Monads for the Working Haskell Programmer -- a short tutorial] :By Theodore Norvell. ;[http://blog.sigfpe.com/2006/08/you-could-have-invented-monads-and.html You Could Have Invented Monads! (And Maybe You Already Have.)] :A short tutorial on monads, introduced from a pragmatic approach, with less category theory references ;[[Meet Bob The Monadic Lover]] :By Andrea Rossato. A humorous and short introduction to Monads, with code but without any reference to category theory: what monads look like and what they are useful for, from the perspective of a ... lover. (There is also the slightly more serious [[The Monadic Way]] by the same author.) ;[http://www.haskell.org/pipermail/haskell-cafe/2006-November/019190.html Monstrous Monads] :Andrew Pimlott's humourous introduction to monads, using the metaphor of "monsters". ;[http://strabismicgobbledygook.wordpress.com/2010/03/06/a-state-monad-tutorial/ A State Monad Tutorial] :A detailed tutorial with simple but practical examples. ;[http://www.reddit.com/r/programming/comments/ox6s/ask_reddit_what_the_hell_are_monads/coxiv Ask Reddit: What the hell are monads? answer by tmoertel] and [https://www.reddit.com/r/programming/comments/ox6s/ask_reddit_what_the_hell_are_monads/coxoh/ dons]. ;[[The Monadic Way]] ;[http://www.alpheccar.org/content/60.html Three kind of monads] : sequencing, side effects or containers ;[http://www.muitovar.com/monad/moncow.html The Greenhorn's Guide to becoming a Monad Cowboy] :Covers basics, with simple examples, in a ''for dummies'' style. Includes monad transformers and monadic functions. Estimated learning time 2-3 days. ;[http://ertes.de/articles/monads.html Understanding Haskell Monads] ;[http://www.reddit.com/r/programming/comments/64th1/monads_in_python_in_production_code_you_can_and/c02u9mb An explanation by 808140]
Summary:
Please note that all contributions to HaskellWiki are considered to be released under simple permissive license (see
HaskellWiki:Copyrights
for details). If you don't want your writing to be edited mercilessly and redistributed at will, then don't submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource.
DO NOT SUBMIT COPYRIGHTED WORK WITHOUT PERMISSION!
Cancel
Editing help
(opens in new window)
Toggle limited content width