X-Git-Url: http://lambda.jimpryor.net/git/gitweb.cgi?p=lambda.git;a=blobdiff_plain;f=week7.mdwn;h=35deeb292777262c91a89e433f1cc39f2c6dd575;hp=961b024a6ed732a9d5fa27f146cb82f936f51a6f;hb=323b2661061ae22ca28b4bf79564e1d1bc9bc446;hpb=ebed7bf68237f042849d0ebfeed8095a5f7d14a4 diff --git a/week7.mdwn b/week7.mdwn index 961b024a..35deeb29 100644 --- a/week7.mdwn +++ b/week7.mdwn @@ -313,7 +313,7 @@ singing box (the end result of evaluting `u`) and bind the variable `x`". (Note that the above "do" notation comes from Haskell. We're mentioning it here -because you're likely to see it when reading about monads. It won't work in +because you're likely to see it when reading about monads. (See our page on [[Translating between OCaml Scheme and Haskell]].) It won't work in OCaml. In fact, the `<-` symbol already means something different in OCaml, having to do with mutable record fields. We'll be discussing mutation someday soon.) @@ -458,7 +458,16 @@ arguments of a monoid operation) the two arguments of the bind are of different types. But it's possible to make the connection between monads and monoids much closer. This is discussed in [Monads in Category Theory](/advanced_topics/monads_in_category_theory). -See also . + +See also: + +* [Haskell wikibook on Monad Laws](http://www.haskell.org/haskellwiki/Monad_Laws). +* [Yet Another Haskell Tutorial on Monad Laws](http://en.wikibooks.org/wiki/Haskell/YAHT/Monads#Definition) +* [Haskell wikibook on Understanding Monads](http://en.wikibooks.org/wiki/Haskell/Understanding_monads) +* [Haskell wikibook on Advanced Monads](http://en.wikibooks.org/wiki/Haskell/Advanced_monads) +* [Haskell wikibook on do-notation](http://en.wikibooks.org/wiki/Haskell/do_Notation) +* [Yet Another Haskell Tutorial on do-notation](http://en.wikibooks.org/wiki/Haskell/YAHT/Monads#Do_Notation) + Here are some papers that introduced monads into functional programming: