# Difference between revisions of "Blog articles/Monads"

From HaskellWiki

DonStewart (talk | contribs) (links to further reading) |
(Added a link.) |
||

(34 intermediate revisions by 8 users not shown) | |||

Line 11: | Line 11: | ||

* [http://sigfpe.blogspot.com/2007/06/how-to-write-tolerably-efficient.html How to write tolerably efficient optimzation code without really trying...] |
* [http://sigfpe.blogspot.com/2007/06/how-to-write-tolerably-efficient.html How to write tolerably efficient optimzation code without really trying...] |
||

* [http://sigfpe.blogspot.com/2007/06/monads-from-algebra-and-the-gray-code.html Monads from Algebra and the the Gray Code from Groups] |
* [http://sigfpe.blogspot.com/2007/06/monads-from-algebra-and-the-gray-code.html Monads from Algebra and the the Gray Code from Groups] |
||

+ | * [http://sigfpe.blogspot.com/2006/06/monads-kleisli-arrows-comonads-and.html Monads, Kleisli Arrows, Comonads and other Rambling Thoughts] |
||

+ | * [http://sigfpe.blogspot.com/2007/11/io-monad-for-people-who-simply-dont.html The IO Monad for People who Simply Don't Care] |
||

* [http://cgi.cse.unsw.edu.au/~dons/blog/2006/12/11#interpreters-with-reader-monads Quick interpreters with the Reader monad] |
* [http://cgi.cse.unsw.edu.au/~dons/blog/2006/12/11#interpreters-with-reader-monads Quick interpreters with the Reader monad] |
||

* [http://hierodule.livejournal.com/69052.html Monads] |
* [http://hierodule.livejournal.com/69052.html Monads] |
||

Line 31: | Line 33: | ||

* [http://therning.org/magnus/archives/269 repeat and sequence] |
* [http://therning.org/magnus/archives/269 repeat and sequence] |
||

* [http://lukeplant.me.uk/blog.php?id=1107301659 What's a monad?] |
* [http://lukeplant.me.uk/blog.php?id=1107301659 What's a monad?] |
||

+ | * [http://comonad.com/reader/2007/parameterized-monads-in-haskell/ Parameterized Monads in Haskell] |
||

+ | * [http://ahamsandwich.wordpress.com/2007/07/26/monads-and-why-monad-tutorials-are-all-awful/ Monads! (and Why Monad Tutorials Are All Awful)] |
||

+ | * [http://www.haskell.org/haskellwiki/Monads_as_computation Monads as computation] |
||

+ | * [http://davblog48.blogspot.com/2007/08/monads-are-hard-to-teach.html Monads are hard to teach] |
||

+ | * [http://luqui.org/blog/archives/2007/08/05/haskell-state-accessors-second-attempt-composability/ Haskell State Accessors (second attempt: Composability)] |
||

+ | * [http://www.bofh.org.uk/articles/2007/08/07/monads Beginning with monads] |
||

+ | * [http://dailykibitz.blogspot.com/2007/08/learning-about-computational-monads.html Learning about (Computational) Monads ] |
||

+ | * [http://osteele.com/archives/2007/12/overloading-semicolon Overloading Semicolon, or, monads from 10,000 Feet] |
||

+ | * [http://mvanier.livejournal.com/3917.html Yet Another Monad Tutorial] |
||

== Monad transformers == |
== Monad transformers == |
||

Line 39: | Line 50: | ||

* [http://sigfpe.blogspot.com/2006/05/grok-haskell-monad-transformers.html Grok monad transformers] |
* [http://sigfpe.blogspot.com/2006/05/grok-haskell-monad-transformers.html Grok monad transformers] |
||

* [http://scsibug.com/2006/11/28/a-simple-game-with-statet/ A Simple Game with StateT] |
* [http://scsibug.com/2006/11/28/a-simple-game-with-statet/ A Simple Game with StateT] |
||

+ | |||

+ | === Continuation monads === |
||

+ | |||

+ | * [http://therning.org/magnus/archives/306 Continuing with Continuations] |
||

== Arrows == |
== Arrows == |
||

Line 44: | Line 59: | ||

* [http://kpreid.livejournal.com/7351.html Concatenative programming in Haskell's Arrows] |
* [http://kpreid.livejournal.com/7351.html Concatenative programming in Haskell's Arrows] |
||

* [http://abstractabsurd.blogspot.com/2007/04/arrows-security.html Arrows and security] |
* [http://abstractabsurd.blogspot.com/2007/04/arrows-security.html Arrows and security] |
||

+ | * [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://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://monadicheadaches.blogspot.com/2007/12/arrows-first-encounter.html Arrows first encounter] |
||

== Comonads == |
== Comonads == |
||

Line 50: | Line 70: | ||

* [http://sigfpe.blogspot.com/2006/12/evaluating-cellular-automata-is.html Evaluating cellular automata is co-monadic] |
* [http://sigfpe.blogspot.com/2006/12/evaluating-cellular-automata-is.html Evaluating cellular automata is co-monadic] |
||

* [http://gelisam.blogspot.com/2007/04/i-understand-comonads.html Understanding comonads] |
* [http://gelisam.blogspot.com/2007/04/i-understand-comonads.html Understanding comonads] |
||

+ | |||

+ | == Applicative Functors == |
||

+ | |||

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

+ | |||

+ | * [http://www.soi.city.ac.uk/~ross/papers/Applicative.pdf Applicative Programming with Effects] |
||

== Further reading == |
== Further reading == |

## Latest revision as of 01:44, 28 January 2011

## Contents

## 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
- Yet Another Monad Tutorial

## 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

### Continuation monads

## 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

## Comonads

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

## Applicative Functors

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