X-Git-Url: http://lambda.jimpryor.net/git/gitweb.cgi?p=lambda.git;a=blobdiff_plain;f=offsite_reading.mdwn;h=ba8251e9c42b1b3918ddd9dc9789f33eeff9903b;hp=cb2dc3eefe53d27bb7fc39c7a4a3e0be67ef0e3e;hb=d51fe4f53ae910c77c598468d90523c4c207bfcf;hpb=d0ad6cb4acfce6fc295c01fed698d80d82deafeb diff --git a/offsite_reading.mdwn b/offsite_reading.mdwn index cb2dc3ee..ba8251e9 100644 --- a/offsite_reading.mdwn +++ b/offsite_reading.mdwn @@ -66,9 +66,7 @@ get more out of out. (Rinse and repeat.) + [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) + 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) This is a short introductory text that introduces common Scheme techniques. * 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. @@ -84,20 +82,15 @@ 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), +short. One widely implemented standard is [The +Revised^5 Report on Scheme](http://www.schemers.org/Documents/Standards/R5RS/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 +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. -\[ [Alt link](http://www.r6rs.org/final/html/r6rs/r6rs.html); -[Libraries](http://www.r6rs.org/final/html/r6rs-lib/r6rs-lib.html) \] +community. ([Libraries for R6RS](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. @@ -107,11 +100,11 @@ community. * [[!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 Why of Y](http://www.dreamsongs.com/NewFiles/WhyOfY.pdf) * [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... +* [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... ## Evaluation Order ## @@ -143,18 +136,21 @@ community. * [A Concise Introduction to Objective Caml](http://www.csc.villanova.edu/~dmatusze/resources/ocaml/ocaml.html) -* Here are [two](http://www.cs.jhu.edu/~scott/pl/lectures/caml-intro.html) [other](http://pauillac.inria.fr/caml/FAQ/stephan.html) bried overviews of OCaml, aimed at readers who already have some programming experience. +* Here are [two](http://www.cs.jhu.edu/~scott/pl/lectures/caml-intro.html) [other](http://pauillac.inria.fr/caml/FAQ/stephan.html) brief overviews of OCaml, aimed at readers who already have some programming experience. Here are [two](http://pauillac.inria.fr/caml/FAQ/exemples-eng.html) [more](http://pauillac.inria.fr/caml/FAQ/qrg-eng.html), even briefer. * Here's a [more detailed tutorial](http://www.ocaml-tutorial.org/) for OCaml. * 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). + ## Side-effects / mutation ## * [[!wikipedia Side effect (computer science) desc="Side effects"]] * [[!wikipedia Reference (computer science) desc="References"]] * [[!wikipedia Pointer (computing) desc="Pointers"]] +* [Pointers in OCaml](http://caml.inria.fr/resources/doc/guides/pointers.html) ## Monads ## @@ -258,9 +254,9 @@ invited talk, *19'th Symposium on Principles of Programming Languages*, ACM Pres * [Understanding continuations](http://keithdevens.com/weblog/archive/2004/Jul/11/continuations) [Commentary](http://lambda-the-ultimate.org/node/86) -* http://en.wikipedia.org/wiki/Continuation +* [[!wikipedia Continuation]] -* http://www.haskell.org/haskellwiki/Continuation +* [Haskell wiki on Continuations](http://www.haskell.org/haskellwiki/Continuation) * [Continuations In Scheme](http://tech.phillipwright.com/2010/05/23/continuations-in-scheme/)