add cps_hint_*
[lambda.git] / readings.mdwn
index c15315d..7810acd 100644 (file)
@@ -1,3 +1,5 @@
+[[!toc levels=3]]
+
 ## Links to tutorials and other resources on Scheme, OCaml, and Haskell ##
 
 *   Help on [[Learning Scheme]]
@@ -5,12 +7,19 @@
 *   Help on [[Learning Haskell]]
 
 
-<!--
-*   [[Translating between OCaml Scheme and Haskell]]
+<!-- -->
+*   This site's [[explanation of the differences|rosetta1]] between these languages
+
+
+## Other Offsite Reading ##
+
+*   [[Famous Computer Scientists|people]]
 
--->
 
-<!--
+## Old links ##
+
+*The links below are from the last time we taught the course; we should check them again...*
+
 There's lots of links here already to tutorials and encyclopedia entries about many of the notions we'll be dealing with.
 
 Many of these links are to Wikipedia. You can learn a lot from such articles,
@@ -29,13 +38,13 @@ of an article you don't fully understand, so that you can discuss it with the re
 the group and hopefully get to a point where you can read it again and
 get more out of. (Rinse and repeat.)
 
-## Functions ##
+### Functions ###
 
 *      [[!wikipedia Higher-order function]]
 *      [[!wikipedia First-class function]]
 *      [[!wikipedia Currying]]
 
-## Functional vs imperative programming ##
+### Functional vs imperative programming ###
 
 *      [[!wikipedia Declarative programming]]
 *      [[!wikipedia Functional programming]]
@@ -44,7 +53,7 @@ get more out of. (Rinse and repeat.)
 *      [[!wikipedia Side effect (computer science) desc="Side effects"]]
 *      [[!wikipedia Imperative programming]]
 
-## General issues about variables and scope in programming languages ##
+### General issues about variables and scope in programming languages ###
 
 *      [[!wikipedia Variable (programming) desc="Variables"]]
 *      [[!wikipedia Free variables and bound variables]]
@@ -55,12 +64,12 @@ get more out of. (Rinse and repeat.)
 *      [[!wikipedia Scope (programming) desc="Variable scope"]]
 *      [[!wikipedia Closure (computer science) desc="Closures"]]
 
-##[[Learning Scheme]]##
 
-## Untyped lambda calculus and combinatory logic ##
+### Untyped lambda calculus and combinatory logic ###
 
+*      [[Dana Scott's Turing centenary address on the lambda calculus|http://turing100.acm.org/lambda_calculus_timeline.pdf]]
 *      [[!wikipedia Lambda calculus]]
-<!~- Haskell Curry had ideas that he felt were validated upon reading a 1924 paper by M. Schönfinkel "Uber die Bausteine der mathematischen Logik" which used combinators in a similar way to his own ideas. Haskell then wrote "An analysis of logical substitution" which appeared in the American Journal of Mathematics in 1929. ~->
+<!~- Haskell Curry had ideas that he felt were validated upon reading a 1924 paper by M. Schönfinkel "Uber die Bausteine der mathematischen Logik" which used combinators in a similar way to his own ideas. Curry then wrote "An analysis of logical substitution" which appeared in the American Journal of Mathematics in 1929. ~->
 *      [[!wikipedia Moses Schönfinkel]]
 *      [[!wikipedia Haskell Curry]]
 *      [[!wikipedia Alonzo Church]]<p>
@@ -78,14 +87,14 @@ get more out of. (Rinse and repeat.)
 *      [Combinator Birds](http://www.angelfire.com/tx4/cus/combinator/birds.html)
 *   [Les deux combinateurs et la totalite](http://www.paulbraffort.net/j_et_i/j_et_i.html) by Paul Braffort.
 
-## Evaluation Order ##
+### Evaluation Order ###
 
 *      [[!wikipedia Evaluation strategy]]
 *      [[!wikipedia Eager evaluation]]
 *      [[!wikipedia Lazy evaluation]]
 *      [[!wikipedia Strict programming language]]
 
-## Confluence, Normalization, Undecidability ##
+### Confluence, Normalization, Undecidability ###
 
 *      [[!wikipedia Church-Rosser theorem]]
 *      [[!wikipedia Normalization property]]
@@ -93,7 +102,7 @@ get more out of. (Rinse and repeat.)
 *      [Scooping the Loop Snooper](http://www.cl.cam.ac.uk/teaching/0910/CompTheory/scooping.pdf), a proof of the undecidability of the halting problem in the style of Dr Seuss by Geoffrey K. Pullum
 
 
-## Recursion and the Y Combinator ##
+### Recursion and the Y Combinator ###
 
 *      [[!wikipedia Recursion (computer science) desc="Recursion"]]
 *      [[!wikipedia Y combinator]]
@@ -106,12 +115,12 @@ get more out of. (Rinse and repeat.)
 *      [The Y Combinator](http://dangermouse.brynmawr.edu/cs245/ycomb_jim.html) derives the applicative-order Y-combinator from scratch, in Scheme. This derivation is similar in flavor to the derivation found in The Little Schemer, but uses a slightly different starting approach...
 *   [The church of the least fixed point, by Sans Pareil](http://www.springerlink.com/content/n4t2v573m58g2755/)
 
-## Folds ##
+### Folds ###
 
 *    [[!wikipedia Fold (higher-order function)]]
 
 
-## Types ##
+### Types ###
 
 *      [[!wikipedia Typed lambda calculus]]
 *      [[!wikipedia Simply typed lambda calculus]]
@@ -128,10 +137,8 @@ get more out of. (Rinse and repeat.)
 *      [[!wikipedia Bottom type]]
 
 
-##[[Learning OCaml]]##
-
 
-## Monads ##
+### Monads ###
 *      [[!wikipedia Monad (functional programming) desc="Monads in Functional Programming"]]
 *      [Daniel Friedman. A Schemer's View of Monads](/schemersviewofmonads.ps): from <https://www.cs.indiana.edu/cgi-pub/c311/doku.php?id=home> but the link above is to a local copy.
 *      [A Gentle Intro to Haskell: About Monads](http://www.haskell.org/tutorial/monads.html) (link currently broken, check <http://www.haskell.org/haskellwiki/Tutorials>)
@@ -192,7 +199,7 @@ in M. Broy, editor, *Marktoberdorf Summer School on Program Design Calculi*, Spr
 *      Monsters and context-shifting, e.g. Gillies/von Fintel on "ifs" [not sure which paper]
 
 
-## Monads in Category Theory ##
+### Monads in Category Theory ###
 
 *      [Category Theory at SEP](http://plato.stanford.edu/entries/category-theory/)
 *      [[!wikipedia Category theory]]
@@ -208,7 +215,7 @@ in M. Broy, editor, *Marktoberdorf Summer School on Program Design Calculi*, Spr
 *      [A Partial Ordering of some Category Theory applied to Haskell](http://blog.sigfpe.com/2010/03/partial-ordering-of-some-category.html)
 
 
-## Side-effects / mutation ##
+### Side-effects / mutation ###
 
 *      [[!wikipedia Referential transparency (computer science)]]
 *      [[!wikipedia Side effect (computer science) desc="Side effects"]]
@@ -218,7 +225,7 @@ in M. Broy, editor, *Marktoberdorf Summer School on Program Design Calculi*, Spr
 *      [Pointers in OCaml](http://caml.inria.fr/resources/doc/guides/pointers.html)
 
 
-## Continuations ##
+### Continuations ###
 
 *      [[!wikipedia Continuation]]
 *      [[!wikipedia Continuation-passing style]]
@@ -250,16 +257,15 @@ in M. Broy, editor, *Marktoberdorf Summer School on Program Design Calculi*, Spr
 *      [Delimited continuations in natural language semantics](http://okmij.org/ftp/gengo/)
 
 
-## The Curry-Howard Correspondence ##
+### The Curry-Howard Correspondence ###
 *      The [[!wikipedia Curry-Howard isomorphism]]
 *      [The Curry-Howard correspondence in Haskell](http://www.thenewsh.com/~newsham/formal/curryhoward/)
 *      [Haskell wikibook on the Curry-Howard Isomorphism](http://en.wikibooks.org/wiki/Haskell/The_Curry-Howard_isomorphism) at Haskell wiki<p>
 
 
 
-## Linear Logic ##
+### Linear Logic ###
 
 *      [[!wikipedia Linear logic]]
 
 
--->