X-Git-Url: http://lambda.jimpryor.net/git/gitweb.cgi?p=lambda.git;a=blobdiff_plain;f=offsite_reading.mdwn;h=b2bab593c9b99951d1ed925e089b3dea30dc6e7f;hp=4994bca11c877ccaca4219aa2c5355724fa15d3b;hb=394353d348990911c08475294d3fefbc7d73a608;hpb=0cfda2cea6982b662387b6b0aa48eb4f3921d2cc diff --git a/offsite_reading.mdwn b/offsite_reading.mdwn index 4994bca1..b2bab593 100644 --- a/offsite_reading.mdwn +++ b/offsite_reading.mdwn @@ -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)

+ +* [[!wikipedia Haskell Curry]] +* [[!wikipedia Moses Schönfinkel]] +* [[!wikipedia Alonzo Church]]

+* [[!wikipedia Combinatory logic]] +* [Combinatory logic](http://plato.stanford.edu/entries/logic-combinatory/) at the Stanford Encyclopedia of Philosophy +* [[!wikipedia SKI combinatory calculus]]

+* [[!wikipedia B,C,K,W system]] +* [[!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]] ## 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]]