links more tweaks
[lambda.git] / offsite_reading.mdwn
index 5d41570..a1e26ca 100644 (file)
@@ -50,8 +50,8 @@ get more out of out. (Rinse and repeat.)
 *      [[!wikipedia Alonzo Church]]<p>
 *      [[!wikipedia Combinatory logic]]
 *      [Combinatory logic](http://plato.stanford.edu/entries/logic-combinatory/) at the Stanford Encyclopedia of Philosophy
 *      [[!wikipedia Alonzo Church]]<p>
 *      [[!wikipedia Combinatory logic]]
 *      [Combinatory logic](http://plato.stanford.edu/entries/logic-combinatory/) at the Stanford Encyclopedia of Philosophy
-*      [[!wikipedia SKI combinatory calculus]]<p>
-*      [[!wikipedia B,C,K,W system]]
+*      [[!wikipedia SKI combinatory calculus]]
+*      [[!wikipedia B,C,K,W system]]<p>
 *      [[!wikipedia Church-Rosser theorem]]
 *      [[!wikipedia Normalization property]]
 *      [[!wikipedia Turing completeness]]<p>
 *      [[!wikipedia Church-Rosser theorem]]
 *      [[!wikipedia Normalization property]]
 *      [[!wikipedia Turing completeness]]<p>
@@ -88,9 +88,6 @@ or R5RS, published in 1998.
 A new standard [R6RS](http://www.r6rs.org/final/html/r6rs/r6rs.html) was ratified
 in 2007, but this has many detractors and has not been fully accepted in the
 community. ([Libraries for R6RS](http://www.r6rs.org/final/html/r6rs-lib/r6rs-lib.html))
 A new standard [R6RS](http://www.r6rs.org/final/html/r6rs/r6rs.html) was ratified
 in 2007, but this has many detractors and has not been fully accepted in the
 community. ([Libraries for R6RS](http://www.r6rs.org/final/html/r6rs-lib/r6rs-lib.html))
-
-&nbsp;
-
 *      [Scheme FAQ](http://community.schemewiki.org/?scheme-faq)
 *      [Scheme Requests for Implementation](http://srfi.schemers.org/) (SRFI)
 *      The [Schematics Scheme Cookbook](http://schemecookbook.org/) is a collaborative effort to produce documentation and recipes for using Scheme for common tasks.
 *      [Scheme FAQ](http://community.schemewiki.org/?scheme-faq)
 *      [Scheme Requests for Implementation](http://srfi.schemers.org/) (SRFI)
 *      The [Schematics Scheme Cookbook](http://schemecookbook.org/) is a collaborative effort to produce documentation and recipes for using Scheme for common tasks.
@@ -120,6 +117,7 @@ community. ([Libraries for R6RS](http://www.r6rs.org/final/html/r6rs-lib/r6rs-li
 
 *      [[!wikipedia Tagged union]]
 *      [[!wikipedia Algebraic data type]]
 
 *      [[!wikipedia Tagged union]]
 *      [[!wikipedia Algebraic data type]]
+*      [[!wikipedia Recursive data type]]
 *      [[!wikipedia Pattern matching]]
 *      [[!wikipedia Unit type]]
 *      [[!wikipedia Bottom type]]
 *      [[!wikipedia Pattern matching]]
 *      [[!wikipedia Unit type]]
 *      [[!wikipedia Bottom type]]
@@ -128,7 +126,8 @@ community. ([Libraries for R6RS](http://www.r6rs.org/final/html/r6rs-lib/r6rs-li
 *      [Type Theory](http://plato.stanford.edu/entries/type-theory/) at the Stanford Encyclopedia of Philosophy
 *      [Church's Type Theory](http://plato.stanford.edu/entries/type-theory-church/) at the Stanford Encyclopedia of Philosophy
 *      The [[!wikipedia Curry-Howard isomorphism]]
 *      [Type Theory](http://plato.stanford.edu/entries/type-theory/) at the Stanford Encyclopedia of Philosophy
 *      [Church's Type Theory](http://plato.stanford.edu/entries/type-theory-church/) at the Stanford Encyclopedia of Philosophy
 *      The [[!wikipedia Curry-Howard isomorphism]]
-*      [The Curry-Howard correspondence in Haskell](http://www.thenewsh.com/~newsham/formal/curryhoward/)<p>
+*      [The Curry-Howard correspondence in Haskell](http://www.thenewsh.com/~newsham/formal/curryhoward/)
+*      [The Curry-Howard Isomorphism](http://en.wikibooks.org/wiki/Haskell/The_Curry-Howard_isomorphism) at Haskell wiki<p>
 *      [[!wikipedia Type polymorphism]]
 *      [[!wikipedia System F]]
 
 *      [[!wikipedia Type polymorphism]]
 *      [[!wikipedia System F]]
 
@@ -142,6 +141,8 @@ community. ([Libraries for R6RS](http://www.r6rs.org/final/html/r6rs-lib/r6rs-li
 
 *      Here's a [more detailed tutorial](http://www.ocaml-tutorial.org/) for OCaml.
 
 
 *      Here's a [more detailed tutorial](http://www.ocaml-tutorial.org/) for OCaml.
 
+*      The start of the [OCaml Reference Manual](http://caml.inria.fr/pub/docs/manual-ocaml/manual003.html) has another tutorial.
+
 *      Jason Hickey has posted a [draft of a nice book introducing OCaml](http://www.cs.caltech.edu/courses/cs134/cs134b/book.pdf).
 
 *      FAQs for [OCaml Beginners](http://pauillac.inria.fr/caml/FAQ/FAQ_DEBUTANT-eng.html), and [a few more](http://caml.inria.fr/resources/doc/faq/). Also FAQs for [OCaml Experts](http://pauillac.inria.fr/caml/FAQ/FAQ_EXPERT-eng.html).
 *      Jason Hickey has posted a [draft of a nice book introducing OCaml](http://www.cs.caltech.edu/courses/cs134/cs134b/book.pdf).
 
 *      FAQs for [OCaml Beginners](http://pauillac.inria.fr/caml/FAQ/FAQ_DEBUTANT-eng.html), and [a few more](http://caml.inria.fr/resources/doc/faq/). Also FAQs for [OCaml Experts](http://pauillac.inria.fr/caml/FAQ/FAQ_EXPERT-eng.html).
@@ -157,70 +158,41 @@ community. ([Libraries for R6RS](http://www.r6rs.org/final/html/r6rs-lib/r6rs-li
 ## Monads ##
 
 *      [[!wikipedia Monad (functional programming) desc="Monads in Functional Programming"]]
 ## Monads ##
 
 *      [[!wikipedia Monad (functional programming) desc="Monads in Functional Programming"]]
-
 *      [A Gentle Intro to Haskell: About Monads](http://www.haskell.org/tutorial/monads.html)
 *      [A Gentle Intro to Haskell: About Monads](http://www.haskell.org/tutorial/monads.html)
-
 *      [Understanding Haskell Monads](http://ertes.de/articles/monads.html)
 *      [Understanding Haskell Monads](http://ertes.de/articles/monads.html)
-
 *      [The State Monad: a tutorial for the confused?](http://coder.bsimmons.name/blog/2009/10/the-state-monad-a-tutorial-for-the-confused/)
 *      [The State Monad: a tutorial for the confused?](http://coder.bsimmons.name/blog/2009/10/the-state-monad-a-tutorial-for-the-confused/)
-
 *      [Beyond Monads](http://blog.sigfpe.com/2009/02/beyond-monads.html)
 *      [Beyond Monads](http://blog.sigfpe.com/2009/02/beyond-monads.html)
-
 *      [Simple Explanation of a Monad](http://math.stackexchange.com/questions/405/simple-explanation-of-a-monad)
 *      [Simple Explanation of a Monad](http://math.stackexchange.com/questions/405/simple-explanation-of-a-monad)
-
 *      [What is a Monad?](http://stackoverflow.com/questions/44965/what-is-a-monad)
 *      [What is a Monad?](http://stackoverflow.com/questions/44965/what-is-a-monad)
-
 *      [Can Anyone Explain Monads?](http://stackoverflow.com/questions/2366/can-anyone-explain-monads)
 *      [Can Anyone Explain Monads?](http://stackoverflow.com/questions/2366/can-anyone-explain-monads)
-
 *      [Monad in Plain English...](http://stackoverflow.com/questions/2704652/monad-in-plain-english-for-the-oop-programmer-with-no-fp-background)
 *      [Monad in Plain English...](http://stackoverflow.com/questions/2704652/monad-in-plain-english-for-the-oop-programmer-with-no-fp-background)
-
 *      [Monad in non-programming terms](http://stackoverflow.com/questions/3261729/monad-in-non-programming-terms)
 *      [Monad in non-programming terms](http://stackoverflow.com/questions/3261729/monad-in-non-programming-terms)
-
 *      [Real World Haskell: chapter on Monads](http://book.realworldhaskell.org/read/monads.html)
 *      [Real World Haskell: chapter on Monads](http://book.realworldhaskell.org/read/monads.html)
-
 *      [Learn You a Haskell for Great Good: chapter on Functors, Applicative Functors and Monoids](http://www.learnyouahaskell.com/functors-applicative-functors-and-monoids)
 *      [Learn You a Haskell for Great Good: chapter on Functors, Applicative Functors and Monoids](http://www.learnyouahaskell.com/functors-applicative-functors-and-monoids)
-
 *      Monads are Elephants:
 [Part 1](http://james-iry.blogspot.com/2007/09/monads-are-elephants-part-1.html)
 [Part 2](http://james-iry.blogspot.com/2007/10/monads-are-elephants-part-2.html)
 [Part 3](http://james-iry.blogspot.com/2007/10/monads-are-elephants-part-3.html)
 [Part 4](http://james-iry.blogspot.com/2007/11/monads-are-elephants-part-4.html)
 *      Monads are Elephants:
 [Part 1](http://james-iry.blogspot.com/2007/09/monads-are-elephants-part-1.html)
 [Part 2](http://james-iry.blogspot.com/2007/10/monads-are-elephants-part-2.html)
 [Part 3](http://james-iry.blogspot.com/2007/10/monads-are-elephants-part-3.html)
 [Part 4](http://james-iry.blogspot.com/2007/11/monads-are-elephants-part-4.html)
-
 *      [Brian Beckman: Don't fear the Monad (67 minute video)](http://channel9.msdn.com/shows/Going+Deep/Brian-Beckman-Dont-fear-the-Monads/)
 *      [Brian Beckman: Don't fear the Monad (67 minute video)](http://channel9.msdn.com/shows/Going+Deep/Brian-Beckman-Dont-fear-the-Monads/)
-
 *      [A monad non-tutorial...or why you shouldn't ask what a monad is](http://strongtyped.blogspot.com/2010/01/monad-non-tutorial.html)
 *      [A monad non-tutorial...or why you shouldn't ask what a monad is](http://strongtyped.blogspot.com/2010/01/monad-non-tutorial.html)
-
 *      [The Mother of all Monads](http://blog.sigfpe.com/2008/12/mother-of-all-monads.html)
 *      [The Mother of all Monads](http://blog.sigfpe.com/2008/12/mother-of-all-monads.html)
-
 *      [You Could Have Invented Monads! (And Maybe You Already Have.)](http://blog.sigfpe.com/2006/08/you-could-have-invented-monads-and.html)
 *      [You Could Have Invented Monads! (And Maybe You Already Have.)](http://blog.sigfpe.com/2006/08/you-could-have-invented-monads-and.html)
-
 *      [Monads! (and Why Monad Tutorials Are All Awful)](http://ahamsandwich.wordpress.com/2007/07/26/monads-and-why-monad-tutorials-are-all-awful/)
 *      [Monads! (and Why Monad Tutorials Are All Awful)](http://ahamsandwich.wordpress.com/2007/07/26/monads-and-why-monad-tutorials-are-all-awful/)
-
 *      [Of monads and spacesuits (archived)](http://www.iterasi.net/openviewer.aspx?sqrlitid=ixx7fcluvek_9lfolsxr_g)
 *      [Of monads and spacesuits (archived)](http://www.iterasi.net/openviewer.aspx?sqrlitid=ixx7fcluvek_9lfolsxr_g)
-
 *      [Haskell wikibook: Understanding monads](http://en.wikibooks.org/wiki/Haskell/Understanding_monads)
 *      [Haskell wikibook: Understanding monads](http://en.wikibooks.org/wiki/Haskell/Understanding_monads)
-
 *      Haskell state monads: [part 1](http://mvanier.livejournal.com/1765.html) [part 2](http://mvanier.livejournal.com/1901.html)
 *      Haskell state monads: [part 1](http://mvanier.livejournal.com/1765.html) [part 2](http://mvanier.livejournal.com/1901.html)
-
 *      [How not to explain Haskell monads](http://mvanier.livejournal.com/1205.html)
 *      [How not to explain Haskell monads](http://mvanier.livejournal.com/1205.html)
-
 *      Yet Another Monad Tutorial: [part 1](http://mvanier.livejournal.com/3917.html) [part 2](http://mvanier.livejournal.com/4305.html)
        [part 3](http://mvanier.livejournal.com/4586.html) [part 4](http://mvanier.livejournal.com/4647.html)
 *      Yet Another Monad Tutorial: [part 1](http://mvanier.livejournal.com/3917.html) [part 2](http://mvanier.livejournal.com/4305.html)
        [part 3](http://mvanier.livejournal.com/4586.html) [part 4](http://mvanier.livejournal.com/4647.html)
-
 *      [Research Papers/Monads and Arrows](http://www.haskell.org/haskellwiki/Research_papers/Monads_and_arrows)
 *      [Research Papers/Monads and Arrows](http://www.haskell.org/haskellwiki/Research_papers/Monads_and_arrows)
-
 *      [Philip Wadler. Monads for Functional Programming](http://homepages.inf.ed.ac.uk/wadler/papers/marktoberdorf/baastad.pdf):
 in M. Broy, editor, *Marktoberdorf Summer School on Program Design Calculi*, Springer Verlag, NATO ASI Series F: Computer and systems sciences, Volume 118, August 1992. Also in J. Jeuring and E. Meijer, editors, *Advanced Functional Programming*, Springer Verlag, LNCS 925, 1995. Some errata fixed August 2001.
 *      [Philip Wadler. Monads for Functional Programming](http://homepages.inf.ed.ac.uk/wadler/papers/marktoberdorf/baastad.pdf):
 in M. Broy, editor, *Marktoberdorf Summer School on Program Design Calculi*, Springer Verlag, NATO ASI Series F: Computer and systems sciences, Volume 118, August 1992. Also in J. Jeuring and E. Meijer, editors, *Advanced Functional Programming*, Springer Verlag, LNCS 925, 1995. Some errata fixed August 2001.
-
        The use of monads to structure functional programs is described. Monads provide a convenient framework for simulating effects found in other languages, such as global state, exception handling, output, or non-determinism. Three case studies are looked at in detail: how monads ease the modification of a simple evaluator; how monads act as the basis of a datatype of arrays subject to in-place update; and how monads can be used to build parsers.
        The use of monads to structure functional programs is described. Monads provide a convenient framework for simulating effects found in other languages, such as global state, exception handling, output, or non-determinism. Three case studies are looked at in detail: how monads ease the modification of a simple evaluator; how monads act as the basis of a datatype of arrays subject to in-place update; and how monads can be used to build parsers.
-
 *      [Philip Wadler. The essence of functional programming](http://homepages.inf.ed.ac.uk/wadler/papers/essence/essence.ps):
 invited talk, *19'th Symposium on Principles of Programming Languages*, ACM Press, Albuquerque, January 1992.
 *      [Philip Wadler. The essence of functional programming](http://homepages.inf.ed.ac.uk/wadler/papers/essence/essence.ps):
 invited talk, *19'th Symposium on Principles of Programming Languages*, ACM Press, Albuquerque, January 1992.
-
        This paper explores the use monads to structure functional programs. No prior knowledge of monads or category theory is required.
        This paper explores the use monads to structure functional programs. No prior knowledge of monads or category theory is required.
-
        Monads increase the ease with which programs may be modified. They can mimic the effect of impure features such as exceptions, state, and continuations; and also provide effects not easily achieved with such features. The types of a program reflect which effects occur.
        Monads increase the ease with which programs may be modified. They can mimic the effect of impure features such as exceptions, state, and continuations; and also provide effects not easily achieved with such features. The types of a program reflect which effects occur.
-
        The first section is an extended example of the use of monads. A simple interpreter is modified to support various extra features: error messages, state, output, and non-deterministic choice. The second section describes the relation between monads and continuation-passing style. The third section sketches how monads are used in a compiler for Haskell that is written in Haskell.
 
 ## Monads in Category Theory ##
        The first section is an extended example of the use of monads. A simple interpreter is modified to support various extra features: error messages, state, output, and non-deterministic choice. The second section describes the relation between monads and continuation-passing style. The third section sketches how monads are used in a compiler for Haskell that is written in Haskell.
 
 ## Monads in Category Theory ##
@@ -245,49 +217,28 @@ invited talk, *19'th Symposium on Principles of Programming Languages*, ACM Pres
 *      [[!wikipedia Continuation-passing style]]
 *      [[!wikipedia Call-with-current-continuation]]
 *      [Intro to call/cc](http://community.schemewiki.org/?call-with-current-continuation) at SchemeWiki
 *      [[!wikipedia Continuation-passing style]]
 *      [[!wikipedia Call-with-current-continuation]]
 *      [Intro to call/cc](http://community.schemewiki.org/?call-with-current-continuation) at SchemeWiki
-*      [[!wikipedia Delimited continuation]]
-*      [Delimited/composable continuations tutorial](composable-continuations-tutorial) at SchemeWiki
-
 *      [Call With Current Continuation](http://www.c2.com/cgi/wiki?CallWithCurrentContinuation)
 *      [Call With Current Continuation](http://www.c2.com/cgi/wiki?CallWithCurrentContinuation)
-
 *      [Continuations Made Simple and Illustrated](http://www.ps.uni-saarland.de/~duchier/python/continuations.html)
 *      [Continuations Made Simple and Illustrated](http://www.ps.uni-saarland.de/~duchier/python/continuations.html)
-
 *      [Continuation kata](http://programming-musings.org/2006/02/12/continuation-kata/)
 *      [Continuation kata](http://programming-musings.org/2006/02/12/continuation-kata/)
-
 *      [Understanding continuations](http://keithdevens.com/weblog/archive/2004/Jul/11/continuations) [Commentary](http://lambda-the-ultimate.org/node/86)
 *      [Understanding continuations](http://keithdevens.com/weblog/archive/2004/Jul/11/continuations) [Commentary](http://lambda-the-ultimate.org/node/86)
-
-*      [[!wikipedia Continuation]]
-
-*      [Haskell wiki on Continuations](http://www.haskell.org/haskellwiki/Continuation)
-
 *      [Continuations In Scheme](http://tech.phillipwright.com/2010/05/23/continuations-in-scheme/)
 *      [Continuations In Scheme](http://tech.phillipwright.com/2010/05/23/continuations-in-scheme/)
-
 *      [Understanding Scheme Continuations](http://sanjaypande.blogspot.com/2004/06/understanding-scheme-continuations.html). This is tagged "Part I" but I think there's no further parts.
 *      [Understanding Scheme Continuations](http://sanjaypande.blogspot.com/2004/06/understanding-scheme-continuations.html). This is tagged "Part I" but I think there's no further parts.
-
 *      [Continuations for Curmudgeons](http://www.intertwingly.net/blog/2005/04/13/Continuations-for-Curmudgeons) [Commentary](http://lambda-the-ultimate.org/node/643)
 *      [Continuations for Curmudgeons](http://www.intertwingly.net/blog/2005/04/13/Continuations-for-Curmudgeons) [Commentary](http://lambda-the-ultimate.org/node/643)
-
-*      [composable-continuations-tutorial](http://community.schemewiki.org/?composable-continuations-tutorial)
-
-*      [Post by Ken on Lambda the Ultimate explaining difference btw undelimited and delimited continuations](http://lambda-the-ultimate.org/node/1197#comment-12927)
-
+*      [Haskell wiki on Continuations](http://www.haskell.org/haskellwiki/Continuation)<p>
+*      [[!wikipedia Delimited continuation]]
+*      [Composable Continuations Tutorial](http://community.schemewiki.org/?composable-continuations-tutorial) at SchemeWiki
+*      [Post by Ken](http://lambda-the-ultimate.org/node/1197#comment-12927) on Lambda the Ultimate explaining difference between undelimited and delimited continuations
 *      [shift, reset and streams](http://chneukirchen.org/blog/archive/2005/04/shift-reset-and-streams.html)
 *      [shift, reset and streams](http://chneukirchen.org/blog/archive/2005/04/shift-reset-and-streams.html)
-
 *      [guile and delimited continuations](http://www.wingolog.org/archives/2010/02/26/guile-and-delimited-continuations)
 *      [guile and delimited continuations](http://www.wingolog.org/archives/2010/02/26/guile-and-delimited-continuations)
-
 *      [Delimited continuations in Scala](http://blog.richdougherty.com/2009/02/delimited-continuations-in-scala_24.html)
 *      [Delimited continuations in Scala](http://blog.richdougherty.com/2009/02/delimited-continuations-in-scala_24.html)
-
 *      [Delimited Continuations Explained (in Scala)](http://dcsobral.blogspot.com/2009/07/delimited-continuations-explained-in.html)
 *      [Delimited Continuations Explained (in Scala)](http://dcsobral.blogspot.com/2009/07/delimited-continuations-explained-in.html)
-
 *      [Partial Continuations](http://www.bluishcoder.co.nz/articles/scheme/partial-continuations.html)
 *      [Partial Continuations](http://www.bluishcoder.co.nz/articles/scheme/partial-continuations.html)
-
-*      [Online Bibliography of Scheme Research: Continuations and Continuation Passing Style](http://library.readscheme.org/page6.html)
-
 *      Delimited Continuations in MzScheme:
 [Part 1](http://schemekeys.blogspot.com/2006/11/prompts-their-interaction-with-dynamic.html)
 [Part 2](http://schemekeys.blogspot.com/2006/12/delimited-continuations-in-mzscheme.html)
 [Part 3](http://schemekeys.blogspot.com/2007/01/going-further-with-primitives.html)
 *      Delimited Continuations in MzScheme:
 [Part 1](http://schemekeys.blogspot.com/2006/11/prompts-their-interaction-with-dynamic.html)
 [Part 2](http://schemekeys.blogspot.com/2006/12/delimited-continuations-in-mzscheme.html)
 [Part 3](http://schemekeys.blogspot.com/2007/01/going-further-with-primitives.html)
-[Part 4](http://schemekeys.blogspot.com/2007/01/odd-and-ends.html)
-
+[Part 4](http://schemekeys.blogspot.com/2007/01/odd-and-ends.html)<p>
+*      [Online Bibliography of Scheme Research: Continuations and Continuation Passing Style](http://library.readscheme.org/page6.html)
 *      [Delimited continuations in natural language semantics](http://okmij.org/ftp/gengo/)
 
 
 *      [Delimited continuations in natural language semantics](http://okmij.org/ftp/gengo/)