added family_tree
[lambda.git] / offsite_reading.mdwn
index 4994bca..b2bab59 100644 (file)
@@ -4,92 +4,106 @@ hope at this point in your education you'll have learned to be a guarded reader
 even of authoritative treatises by eminent authors. So you shouldn't need any
 Wikipedia-specific warnings.
 
+For most readers, many bits of reading we point you to will be hairy in one way
+or another. It may be aimed at audiences with more programming experience; it
+may be aimed at audiences with specific logical background you don't yet have;
+it may be aimed at audiences familiar with technical areas in linguistics you're
+first encountering. Or perhaps several of these at once. We hope you will
+already have mastered the skill of leveraged reading: getting what you can out
+of an article you don't fully understand, so that you can discuss it with the rest of
+the group and hopefully get to a point where you can read it again and
+get more out of out. (Rinse and repeat.)
+
+
 ## General issues about variables and binding in programming languages ##
 
-[[!wikipedia Variable (programming)]]
-[[!wikipedia Variable shadowing]]
-[[!wikipedia Scope (programming)]]
-[[!wikipedia Free variables and bound variables]]
-[[!wikipedia Name binding]]
-[[!wikipedia Name resolution]]
-[[!wikipedia Parameter (computer science)]]
+*      [[!wikipedia Variable (programming)]]
+*      [[!wikipedia Variable shadowing]]
+*      [[!wikipedia Scope (programming)]]
+*      [[!wikipedia Free variables and bound variables]]
+*      [[!wikipedia Name binding]]
+*      [[!wikipedia Name resolution]]
+*      [[!wikipedia Parameter (computer science)]]
 
 ## Functions as values, etc ##
 
-[[!wikipedia Higher-order function]]
-[[!wikipedia First-class function]]
-[[!wikipedia Closure (computer science)]]
-[[!wikipedia Currying]]
-[[!wikipedia Recursion (computer science)]]
+*      [[!wikipedia Higher-order function]]
+*      [[!wikipedia First-class function]]
+*      [[!wikipedia Closure (computer science)]]
+*      [[!wikipedia Currying]]
+*      [[!wikipedia Recursion (computer science)]]
 
 ## Functional vs imperative programming ##
 
-[[!wikipedia Declarative programming]]
-[[!wikipedia Functional programming]]
-[[!wikipedia Purely functional]]
-[[!wikipedia Referential transparency (computer science)]]
-[[!wikipedia Imperative programming]]
+*      [[!wikipedia Declarative programming]]
+*      [[!wikipedia Functional programming]]
+*      [[!wikipedia Purely functional]]
+*      [[!wikipedia Referential transparency (computer science)]]
+*      [[!wikipedia Imperative programming]]
 
 ## Scheme and OCaml ##
 
-[[!wikipedia Scheme (programming language)]]
-[[!wikipedia Objective Caml]]
+*      [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]]
-
-[[!wikipedia Haskell Curry]]
-[[!wikipedia Moses Schönfinkel]]
-[[!wikipedia Alonzo Church]]
-
-[[!wikipedia Combinatory logic]]
-[[!wikipedia B,C,K,W system]]
-[[!wikipedia SKI combinatory calculus]]
-
-[[!wikipedia Church-Rosser theorem]]
-[[!wikipedia Normalization property]]
-[[!wikipedia Turing completeness]]
-
-[[!wikipedia Church encoding]]
-[[!wikipedia Y combinator]]
-
-[[!wikipedia Curry-Howard isomorphism]]
-
-[[!wikipedia Evaluation strategy]]
-[[!wikipedia Eager evaluation]]
-[[!wikipedia Lazy evaluation]]
-[[!wikipedia Strict programming language]]
+*      [[!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 SKI combinatory calculus]]<p>
+*      [[!wikipedia B,C,K,W system]]
+*      [[!wikipedia Church-Rosser theorem]]
+*      [[!wikipedia Normalization property]]
+*      [[!wikipedia Turing completeness]]<p>
+*      [[!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]]
 
 ## Types ##
 
-[[!wikipedia Tagged union]]
-[[!wikipedia Algebraic data type]]
-[[!wikipedia Pattern matching]]
-[[!wikipedia Unit type]]
-[[!wikipedia Bottom type]]
-[[!wikipedia Typed lambda calculus]]
-[[!wikipedia Simply typed lambda calculus]]
-[[!wikipedia Type polymorphism]]
-[[!wikipedia System F]]
+*      [[!wikipedia Tagged union]]
+*      [[!wikipedia Algebraic data type]]
+*      [[!wikipedia Pattern matching]]
+*      [[!wikipedia Unit type]]
+*      [[!wikipedia Bottom type]]
+*      [[!wikipedia Typed lambda calculus]]
+*      [[!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
+*      [[!wikipedia Type polymorphism]]
+*      [[!wikipedia System F]]
 
-[[!wikipedia Side effect (computer science)]]
-[[!wikipedia Reference (computer science)]]
-[[!wikipedia Pointer (computing)]]
+## Side-effects / mutation ##
+
+*      [[!wikipedia Side effect (computer science)]]
+*      [[!wikipedia Reference (computer science)]]
+*      [[!wikipedia Pointer (computing)]]
 
 ## Continuations ##
 
-[[!wikipedia Continuation]]
-[[!wikipedia Continuation-passing style]]
-[[!wikipedia Call-with-current-continuation]]
-[[!wikipedia Delimited continuation]]
+*      [[!wikipedia Continuation]]
+*      [[!wikipedia Continuation-passing style]]
+*      [[!wikipedia 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](composable-continuations-tutorial) at SchemeWiki
 
 ## Monads ##
 
-[[!wikipedia Monad (functional programming)]]
+*      [[!wikipedia Monad (functional programming)]]
 
 ## Linear Logic ##
 
-[[!wikipedia Linear logic]]
-
+*      [[!wikipedia Linear logic]]