X-Git-Url: http://lambda.jimpryor.net/git/gitweb.cgi?p=lambda.git;a=blobdiff_plain;f=offsite_reading.mdwn;h=5d4157035475f6172d6ccdac6b352b5ed58935b6;hp=c63f6734d70ebff57dc59066df54b7ce9fbada1c;hb=18e2c0f20d15c9f099fa5ae9571d6635dc2cd44b;hpb=d3f15213bee843c5af41bcbb87eb45b3b2a6aa71 diff --git a/offsite_reading.mdwn b/offsite_reading.mdwn index c63f6734..5d415703 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,17 @@ 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 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 +102,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 ## @@ -139,13 +134,25 @@ community. ## Learning OCaml ## -* [[!wikipedia Objective Caml]] +* [[!wikipedia Objective Caml desc="Wikipedia overview of OCaml"]] + +* [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) 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 ## @@ -249,9 +256,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/)