adding some Learning Scheme links
[lambda.git] / offsite_reading.mdwn
index 92a3e6e..71e3ac2 100644 (file)
@@ -49,14 +49,16 @@ get more out of out. (Rinse and repeat.)
 
 ## Untyped lambda calculus and combinatory logic ##
 
-*      [[!wikipedia Lambda calculus]]<p>
+*      [[!wikipedia Lambda calculus]]
+*      [Chris Barker's Lambda Tutorial](http://homepages.nyu.edu/~cb125/Lambda)<p>
+
 *      [[!wikipedia Haskell Curry]]
 *      [[!wikipedia Moses Schönfinkel]]
 *      [[!wikipedia Alonzo Church]]<p>
 *      [[!wikipedia Combinatory logic]]
 *      [Combinatory logic](http://plato.stanford.edu/entries/logic-combinatory/) at the Stanford Encyclopedia of Philosophy
-*      [[!wikipedia B,C,K,W system]]
 *      [[!wikipedia SKI combinatory calculus]]<p>
+*      [[!wikipedia B,C,K,W system]]
 *      [[!wikipedia Church-Rosser theorem]]
 *      [[!wikipedia Normalization property]]
 *      [[!wikipedia Turing completeness]]<p>
@@ -68,6 +70,48 @@ get more out of out. (Rinse and repeat.)
 *      [[!wikipedia Lazy evaluation]]
 *      [[!wikipedia Strict programming language]]
 
+## Learning Scheme ##
+
+*      [Wikipedia overview of Scheme](http://en.wikipedia.org/wiki/Scheme_%28programming_language%29)
+
+*      If you are new to programming or if you have the patience to work through a textbook, you should work through a textbook. Some good choices are The Little Schemer book(s) we recommended for the seminar; and also:
+
+       +       [How to Design Programs](http://www.htdp.org/2003-09-26/), by Matthias Felleisen, et al., which the Racket groups recommends. Whenever the book says "Scheme," you can read it as "Racket."
+
+       Another warmly-recommended introduction available online is:
+
+       +       [Teach Yourself Scheme in Fixnum Days](http://www.ccs.neu.edu/home/dorai/t-y-scheme/t-y-scheme.html)
+
+*      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.
+
+*      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
+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
+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/)\]
+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)\]
+
+*      [Scheme FAQ](http://community.schemewiki.org/?scheme-faq)
+
+*      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)
+
+
+
 ## Types ##
 
 *      [[!wikipedia Tagged union]]
@@ -93,9 +137,9 @@ get more out of out. (Rinse and repeat.)
 *      [[!wikipedia Continuation]]
 *      [[!wikipedia Continuation-passing style]]
 *      [[!wikipedia Call-with-current-continuation]]
-*      [Intro to call/cc at SchemeWiki](http://community.schemewiki.org/?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 at SchemeWiki](composable-continuations-tutorial)
+*      [Delimited/composable continuations tutorial](composable-continuations-tutorial) at SchemeWiki
 
 ## Monads ##