name change
[lambda.git] / readings.mdwn
index b30c3dd..7d72fa7 100644 (file)
@@ -1,9 +1,12 @@
+[[!toc levels=3]]
+
 ## Links to tutorials and other resources on Scheme, OCaml, and Haskell ##
 
 *   Help on [[Learning Scheme]]
 *   Help on [[Learning OCaml]]
 *   Help on [[Learning Haskell]]
 
+
 <!-- -->
 *   This site's [[explanation of the differences|rosetta1]] between these languages
 
 *   [[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,
@@ -33,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]]
@@ -48,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]]
@@ -59,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>
@@ -82,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]]
@@ -97,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]]
@@ -110,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]]
@@ -132,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>)
@@ -196,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]]
@@ -212,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"]]
@@ -222,11 +225,12 @@ 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]]
 *      [[!wikipedia Call-with-current-continuation]]
+*      John C Reynolds, [The discoveries of continuations](http://cs.au.dk/~hosc/local/LaSC-6-34-pp233-248.pdf)
 *      [Intro to call/cc](http://community.schemewiki.org/?call-with-current-continuation) at SchemeWiki
 *      [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)
@@ -237,7 +241,12 @@ in M. Broy, editor, *Marktoberdorf Summer School on Program Design Calculi*, Spr
 *      [Continuations for Curmudgeons](http://www.intertwingly.net/blog/2005/04/13/Continuations-for-Curmudgeons) [Commentary](http://lambda-the-ultimate.org/node/643)
 *      [Haskell wiki on Continuations](http://www.haskell.org/haskellwiki/Continuation)
 *      [Haskell wikibook on Continuation Passing Style](http://en.wikibooks.org/wiki/Haskell/Continuation_passing_style)<p>
+
+<!-- -->
+
 *      [[!wikipedia Delimited continuation]]
+*      Ken's paper [Shift to Control](http://repository.readscheme.org/ftp/papers/sw2004/shan.pdf), comparing some of the different delimited continuation operators
+*      Racket's documents on [the variety of continuation operators](http://docs.racket-lang.org/reference/cont.html?q=abort#%28mod-path._racket%2Fcontrol%29)
 *      [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)
@@ -254,16 +263,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]]
 
 
--->