# Blog articles/Monads

### From HaskellWiki

< Blog articles(Difference between revisions)

m (fixed a typo) |
m |
||

Line 60: | Line 60: | ||

* [http://cgi.cse.unsw.edu.au/~dons/blog/2007/07/31 Run length encoding in Haskell] |
* [http://cgi.cse.unsw.edu.au/~dons/blog/2007/07/31 Run length encoding in Haskell] |
||

* [http://neilbartlett.name/blog/2007/08/01/haskell-explaining-arrows-through-xml-transformationa/ Haskell: Explaining Arrows through XML Transformations] |
* [http://neilbartlett.name/blog/2007/08/01/haskell-explaining-arrows-through-xml-transformationa/ Haskell: Explaining Arrows through XML Transformations] |
||

− | * [http://unenterprise.blogspot.com/2007/08/playing-with-arrows.html Playing with Arrows] |
+ | * [http://www.drmaciver.com/2007/08/playing-with-arrows/ Playing with Arrows] |

* [http://onthebalcony.wordpress.com/2007/02/19/my-evolution-as-a-haskell-programmer/ My Evolution as a Haskell Programmer: Factorial with Arrows] |
* [http://onthebalcony.wordpress.com/2007/02/19/my-evolution-as-a-haskell-programmer/ My Evolution as a Haskell Programmer: Factorial with Arrows] |
||

* [http://monadicheadaches.blogspot.com/2007/12/arrows-first-encounter.html Arrows first encounter] |
* [http://monadicheadaches.blogspot.com/2007/12/arrows-first-encounter.html Arrows first encounter] |

## Revision as of 22:03, 29 April 2008

## Contents |

## 1 Monads

- The monad laws
- The Trivial Monad
- Tracking tainted data: Homeland Security Threat Level Monad
- Monads: a field guide
- Variable substitution gives a ... monad
- The monad behind every zipper
- Monads for vector spaces, probability and quantum mechanics pt. I
- Monads, Vector Spaces and Quantum Mechanics pt. II
- How to write tolerably efficient optimzation code without really trying...
- Monads from Algebra and the the Gray Code from Groups
- Monads, Kleisli Arrows, Comonads and other Rambling Thoughts
- The IO Monad for People who Simply Don't Care
- Quick interpreters with the Reader monad
- Monads
- More on Haskell, Side Effects and Code Reuse
- A First Step Into Monads
- More Monads: Stateful Programming
- The theory of monads
- A newbie in Haskell land or another monad tutorial
- A newbie in Haskell land : The (->) monad
- Smart classification using Bayesian monads
- 3 open problems with monads
- Monads in 15 minutes: Backtracking and Maybe
- How to make Data.Set a monad
- Monads work because they have a tight interface
- Haskell: bootstrapping into a clue about monads
- Why monads matter
- Monads through Pictures
- Monads as universe helpers
- Simple state monad
- repeat and sequence
- What's a monad?
- Parameterized Monads in Haskell
- Monads! (and Why Monad Tutorials Are All Awful)
- Monads as computation
- Monads are hard to teach
- Haskell State Accessors (second attempt: Composability)
- Beginning with monads
- Learning about (Computational) Monads
- Overloading Semicolon, or, monads from 10,000 Feet

## 2 Monad transformers

- A twisted history of monad transformers
- How To Use Monad Transformers
- Local and global side effects with monad transformers
- Grok monad transformers
- A Simple Game with StateT

### 2.1 Continuation monads

## 3 Arrows

- Concatenative programming in Haskell's Arrows
- Arrows and security
- Run length encoding in Haskell
- Haskell: Explaining Arrows through XML Transformations
- Playing with Arrows
- My Evolution as a Haskell Programmer: Factorial with Arrows
- Arrows first encounter

## 4 Comonads

- Comonads and reading from the future
- Evaluating cellular automata is co-monadic
- Understanding comonads

## 5 Applicative Functors

Nobody has written blog articles on applicative functors - so how about a functional pearl: