index b09ae2e..4fb2eca 100644 (file)
@@ -17,21 +17,20 @@ get more out of out. (Rinse and repeat.)

## General issues about variables and binding in programming languages ##

-*      [[!wikipedia Variable (programming)]]
+*      [[!wikipedia Variable (programming) desc="Variables"]]
-*      [[!wikipedia Scope (programming)]]
+*      [[!wikipedia Scope (programming) desc="Variable scope"]]
*      [[!wikipedia Free variables and bound variables]]
*      [[!wikipedia Name binding]]
*      [[!wikipedia Name resolution]]
-*      [[!wikipedia Parameter (computer science)]]
+*      [[!wikipedia Parameter (computer science) desc="Function parameters"]]

## Functions as values, etc ##

*      [[!wikipedia Higher-order function]]
*      [[!wikipedia First-class function]]
-*      [[!wikipedia Closure (computer science)]]
+*      [[!wikipedia Closure (computer science) desc="Closures"]]
*      [[!wikipedia Currying]]
-*      [[!wikipedia Recursion (computer science)]]

## Functional vs imperative programming ##

@@ -61,7 +60,7 @@ get more out of out. (Rinse and repeat.)

## Learning Scheme ##

-*      [Wikipedia overview of Scheme](http://en.wikipedia.org/wiki/Scheme_%28programming_language%29)
+*      [[!wikipedia Scheme (programming language) desc="Wikipedia overview of Scheme"]]

*      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:

@@ -104,6 +103,7 @@ community.

## Recursion and the Y Combinator ##

+*      [[!wikipedia Recursion (computer science) desc="Recursion"]]
*      [[!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)
@@ -132,7 +132,8 @@ community.
*      [[!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
-*      The [[!wikipedia Curry-Howard isomorphism]]<p>
+*      The [[!wikipedia Curry-Howard isomorphism]]
+*      [The Curry-Howard correspondence in Haskell](http://www.thenewsh.com/~newsham/formal/curryhoward/)<p>
*      [[!wikipedia Type polymorphism]]
*      [[!wikipedia System F]]

@@ -142,13 +143,13 @@ community.

## Side-effects / mutation ##

-*      [[!wikipedia Side effect (computer science)]]
-*      [[!wikipedia Reference (computer science)]]
-*      [[!wikipedia Pointer (computing)]]
+*      [[!wikipedia Side effect (computer science) desc="Side effects"]]
+*      [[!wikipedia Reference (computer science) desc="References"]]
+*      [[!wikipedia Pointer (computing) desc="Pointers"]]

@@ -178,17 +179,17 @@ community.

-*      Of monads and spacesuits (archived)](http://www.iterasi.net/openviewer.aspx?sqrlitid=ixx7fcluvek_9lfolsxr_g)
+*      [Of monads and spacesuits (archived)](http://www.iterasi.net/openviewer.aspx?sqrlitid=ixx7fcluvek_9lfolsxr_g)

@@ -215,6 +216,22 @@ invited talk, *19'th Symposium on Principles of Programming Languages*, ACM Pres

The first section is an extended example of the use of monads. A simple interpreter is modified to support various extra features: error messages, state, output, and non-deterministic choice. The second section describes the relation between monads and continuation-passing style. The third section sketches how monads are used in a compiler for Haskell that is written in Haskell.

+## Monads in Category Theory ##
+
+*      [Category Theory at SEP](http://plato.stanford.edu/entries/category-theory/)
+*      [[!wikipedia Category theory]]
+*      [[!wikipedia Category (mathematics) desc="Category"]]
+*      [[!wikipedia Morphism]]
+*      [[!wikipedia Functor]]
+*      [[!wikipedia Natural transformation]]
+*      [Category Theory & Functional Programming](http://blog.mestan.fr/2009/01/09/category-theory-functional-programming/)
+*      [Resources for learning practical category theory](http://mathoverflow.net/questions/903/resources-for-learning-practical-category-theory)
+*      [A Partial Ordering of some Category Theory applied to Haskell](http://blog.sigfpe.com/2010/03/partial-ordering-of-some-category.html)
+
+
## Continuations ##

*      [[!wikipedia Continuation]]
@@ -224,11 +241,9 @@ invited talk, *19'th Symposium on Principles of Programming Languages*, ACM Pres
*      [[!wikipedia Delimited continuation]]
*      [Delimited/composable continuations tutorial](composable-continuations-tutorial) at SchemeWiki