Scheme links tweaks
[lambda.git] / offsite_reading.mdwn
index 71e3ac2..403e99e 100644 (file)
@@ -41,17 +41,11 @@ get more out of out. (Rinse and repeat.)
 *      [[!wikipedia Referential transparency (computer science)]]
 *      [[!wikipedia Imperative programming]]
 
-## Scheme and OCaml ##
-
-*      [An Introduction to Lambda Calculus and Scheme](http://www.jetcafe.org/~jim/lambda.html) -- aimed at programmers
-*      [[!wikipedia Scheme (programming language)]]
-*      [[!wikipedia Objective Caml]]
-
 ## Untyped lambda calculus and combinatory logic ##
 
 *      [[!wikipedia Lambda calculus]]
-*      [Chris Barker's Lambda Tutorial](http://homepages.nyu.edu/~cb125/Lambda)<p>
-
+*      [Chris Barker's Lambda Tutorial](http://homepages.nyu.edu/~cb125/Lambda)
+*      [Lambda Animator](http://thyer.name/lambda-animator/)<p>
 *      [[!wikipedia Haskell Curry]]
 *      [[!wikipedia Moses Schönfinkel]]
 *      [[!wikipedia Alonzo Church]]<p>
@@ -62,13 +56,8 @@ get more out of out. (Rinse and repeat.)
 *      [[!wikipedia Church-Rosser theorem]]
 *      [[!wikipedia Normalization property]]
 *      [[!wikipedia Turing completeness]]<p>
+*      [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
 *      [[!wikipedia Church encoding]]
-*      [[!wikipedia Y combinator]]<p>
-*      [[!wikipedia Curry-Howard isomorphism]]<p>
-*      [[!wikipedia Evaluation strategy]]
-*      [[!wikipedia Eager evaluation]]
-*      [[!wikipedia Lazy evaluation]]
-*      [[!wikipedia Strict programming language]]
 
 ## Learning Scheme ##
 
@@ -84,12 +73,14 @@ get more out of out. (Rinse and repeat.)
 
 *      If you're already a programmer and you're in more of a hurry, you could instead look at the [Quick Introduction to Racket](http://docs.racket-lang.org/quick/index.html). This tutorial provides a brief introduction to the Racket programming language by using DrRacket and one of Racket's picture-drawing libraries.
 
-*      After either of the preceding, you could move on to [Racket Guide](http://docs.racket-lang.org/guide/index.html). This starts with a tutorial on Racket basics; then it describes the rest of the Racket language. This guide is intended for programmers who are new to Racket or new to some part of Racket. It assumes programming experience, so if you are new to programming, you should instead start with one of the textbooks listed above. This Guide describes parts of the Racket language which go beyond the learning-oriented fragments of How to Design Programs.
+*      [An Introduction to Lambda Calculus and Scheme](http://www.jetcafe.org/~jim/lambda.html) is also aimed at programmers.
+
+*      After any of the preceding, you could move on to [Racket Guide](http://docs.racket-lang.org/guide/index.html). This starts with a tutorial on Racket basics; then it describes the rest of the Racket language. This guide is intended for programmers who are new to Racket or new to some part of Racket. It assumes programming experience, so if you are new to programming, you should instead start with one of the textbooks listed above. This Guide describes parts of the Racket language which go beyond the learning-oriented fragments of How to Design Programs.
 
 *      The [Complete Racket Reference Manual](http://docs.racket-lang.org/reference/index.html) defines the core Racket language and describes its most prominent libraries. The Racket Guide is friendlier; though less precise and less complete.
 
 *      The Scheme language is standardized; the various implementations of the
-language usually adhere to what's published in the current standard and on
+language usually adhere to what's published in the current standard and add on
 different handy extensions. The first standard was published in 1975. A
 revision was published in 1978 called "The revised report on Scheme, a
 dialect of Lisp." Thereafter, revisions of the standard were titled "The
@@ -97,19 +88,37 @@ Revised Revised Report..." and so on, or "The Revised^n Report..." for
 short, for increasing n. The most widely implemented standard is [The
 Revised^5 Report on Scheme](http://docs.racket-lang.org/r5rs/index.html),
 or R5RS, published in 1998.
-\[[Alt link](http://www.schemers.org/Documents/Standards/R5RS/HTML/)\]
+\[ [Alt link](http://www.schemers.org/Documents/Standards/R5RS/HTML/) \]
 A new standard [R6RS](http://docs.racket-lang.org/r6rs/index.html) was ratified
 in 2007, but this has many detractors and has not been fully accepted in the
 community.
-\[[Alt link](http://www.r6rs.org/final/html/r6rs/r6rs.html);
-[Libraries](http://www.r6rs.org/final/html/r6rs-lib/r6rs-lib.html)\]
+\[ [Alt link](http://www.r6rs.org/final/html/r6rs/r6rs.html);
+[Libraries](http://www.r6rs.org/final/html/r6rs-lib/r6rs-lib.html) \]
 
 *      [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 Requests for Implementation](http://srfi.schemers.org/) (SRFI)
+       
+## Recursion and the Y Combinator ##
+
+*      [[!wikipedia Y combinator]]
+*      [Chapter 9 from The Little Schemer](http://www.ccs.neu.edu/home/matthias/BTLS/sample.ps) on the Y Combinator "...and Again, and Again, and Again..."
+*      [The Y combinator](http://mvanier.livejournal.com/2700.html)
+*      [The Y Combinator (Slight Return), or: How to Succeed at Recursion Without Really Recursing](http://mvanier.livejournal.com/2897.html)
+*      [Y Combinator for Dysfunctional Non-Schemers](http://rayfd.wordpress.com/2007/05/06/y-combinator-for-dysfunctional-non-schemers/)
+*      [The Y Combinator](http://www.ece.uc.edu/~franco/C511/html/Scheme/ycomb.html)
+*      [The Y Combinator](http://dangermouse.brynmawr.edu/cs245/ycomb_jim.html), described as:
+       > This is the derivation of the applicative-order Y-combinator from scratch, in Scheme. The following derivation is similar in flavor to the derivation found in The Little LISPer by Friedman/Felleisen, but uses a slightly different starting approach...
+
+## Evaluation Order ##
 
+*      [[!wikipedia Evaluation strategy]]
+*      [[!wikipedia Eager evaluation]]
+*      [[!wikipedia Lazy evaluation]]
+*      [[!wikipedia Strict programming language]]
 
 
 ## Types ##
@@ -123,9 +132,14 @@ community.
 *      [[!wikipedia Simply typed lambda calculus]]
 *      [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]]<p>
 *      [[!wikipedia Type polymorphism]]
 *      [[!wikipedia System F]]
 
+## Learning OCaml ##
+
+*      [[!wikipedia Objective Caml]]
+
 ## Side-effects / mutation ##
 
 *      [[!wikipedia Side effect (computer science)]]