movements
[lambda.git] / content.mdwn
index 9f8a5bf..be10a97 100644 (file)
@@ -7,6 +7,11 @@ week in which they were introduced.
 
 *   [[What is computation?|topics/week3_what_is_computation]]
 
+*   [[Kaplan on Plexy|topics/week6_plexy]]
+*   [[Groenendijk, Stokhof, and Veltman|/topics/week10_gsv]]
+*   Mutation and hyper-synonymy (no notes)
+
+
 *   Functional Programming
 
     *   [[Introduction|topics/week1 kapulet intro]]
@@ -16,14 +21,25 @@ week in which they were introduced.
     *   [[List Comprehensions|topics/week3 lists#comprehensions]]
     *   [[Unit and its usefulness|topics/week3 unit]]
     *   More tips on using Scheme
-    *   Types in OCaml and Haskell (will be posted soon)
-    *   Practical advice for working with OCaml and/or Haskell (will be posted soon)
+    *   Types in OCaml and Haskell (will be posted someday)
+    *   Practical advice for working with OCaml and/or Haskell (will be posted someday)
+    *   [[Kaplan on Plexy|topics/week6_plexy]] and the Maybe type
+    *   Untyped lambda evaluator ([[in browser|code/lambda_evaluator]]) ([[for home|topics/week7_untyped_evaluator]])
+    *   [[Ramble on Monads and Modules|topics/week8_monads_and_modules]]
+    *   [[Installing and Using the Juli8 Libraries|/juli8]]
+    *   [[Programming with mutable state|/topics/week9_mutable_state]]
+    *   Mutation and hyper-synonymy (no notes)
+
 
 *   Order, "static versus dynamic"
 
     *   [[Order in programming languages and natural language|topics/week1 order]]
     *   [[Reduction Strategies and Normal Forms in the Lambda Calculus|topics/week3_evaluation_order]]
     *   [[Unit and its usefulness|topics/week3 unit]]
+    *   Combinatory evaluator ([[for home|topics/week7_combinatory_evaluator]])
+    *   [[Programming with mutable state|/topics/week9_mutable_state]]
+    *   see also Continuation links, below
+
 
 *   The Untyped Lambda Calculus
 
@@ -37,17 +53,46 @@ week in which they were introduced.
         *   [[Arithmetic with Church numbers|topics/week3_church_arithmetic]]
         *   [[How to get the `tail` of v1 lists?|topics/week3 lists#tails]]
         *   [[Some other list encodings|topics/week3 lists#other-lists]]
+        *   [[Abortable list traversals|/topics/week12_abortable_traversals]]
     *   [[Reduction Strategies and Normal Forms|topics/week3_evaluation_order]]
     *   [[Fixed point combinators|topics/week4_fixed_point_combinators]]
     *   [[More about fixed point combinators|topics/week4_more_about_fixed_point_combinators]]
+    *   Untyped lambda evaluator ([[in browser|code/lambda_evaluator]]) ([[for home|topics/week7_untyped_evaluator]])
+    *   [[Environments and Closures|topics/week7_environments_and_closures]]
 
-*   [[Combinatory Logic|topics/week3 combinatory logic]]
+
+*   Combinatory logic
+
+    *   [[Introduction|topics/week3 combinatory logic]]
+    *   Combinatory evaluator ([[for home|topics/week7_combinatory_evaluator]])
 
 *   Typed Lambda Calculi
 
     *   [[Simply-typed lambda calculus|topics/week5 simply typed]] (will be updated)
     *   [[System F|topics/week5 system F]] (will be updated)
-    *   Types in OCaml and Haskell (will be posted soon)
+    *   Types in OCaml and Haskell (will be posted someday)
+    *   see also Monads links, below
+
+*   Monads
+    *   [[Introducing Monads|topics/week7_introducing_monads]]
+    *   [[Safe division with monads|topics/week8_safe_division_with_monads]]
+    *   [[Reader Monad|/topics/week8_reader_monad]]
+    *   [[Ramble on Monads and Modules|topics/week8_monads_and_modules]]
+    *   [[Using the OCaml Monad library|/topics/week9_using_the_monad_library]]
+    *   [[Programming with mutable state|/topics/week9_mutable_state]]
+    *   [[A State Monad Tutorial|/topics/week9_state_monad_tutorial]]
+    *   [[Using multiple monads together|/topics/week9_monad_transformers]]
+    *   [[Groenendijk, Stokhof, and Veltman|/topics/week10_gsv]]
+
+
+*   Continuations
+    *   [[Abortable list traversals|/topics/week12_abortable_traversals]]
+    *   [[List and tree zippers|/topics/week12_list_and_tree_zippers]]
+    *   [[From list zippers to continuations|topics/week13_from_list_zippers_to_continuations]]
+    *   [[Coroutines, exceptions, and aborts|topics/week13_coroutines_exceptions_and_aborts]]
+    *   [[Let/cc and reset/shift|topics/week13_native_continuation_operators]]
+    *   CPS transforms
+
 
 
 ## Topics by week ##
@@ -71,8 +116,6 @@ Week 2:
 
 Week 3:
 
-*These notes were developed over the course of the week. It'd be a good idea to review them again now, to be sure you've read all the content.*
-
 *   [[Arithmetic with Church numbers|topics/week3_church_arithmetic]]
 *   [[More on Lists|topics/week3 lists]]
 Introduces list comprehensions, discusses how to get the `tail` of lists in the Lambda Calculus, and some new list encodings
@@ -87,20 +130,64 @@ Week 4:
 *   [[Fixed point combinators|topics/week4_fixed_point_combinators]]
 *   [[More about fixed point combinators|topics/week4_more_about_fixed_point_combinators]]
 *   Towards types (in progress)
-*   [[Homework for week 4|exercises/assignment4]]
+*   [[Homework for week 4|exercises/assignment4]] ([[Answers|exercises/assignment4_answers]])
 
 Week 5:
 
-*Note*: Jim will be updating and expanding the lecture notes by Tuesday, but doesn't want to delay any longer letting you have access to the drafts we (in part) presented from in seminar. But do come back and re-read the pages when the expanded versions are posted.
-
 *   [[Simply-typed lambda calculus|topics/week5 simply typed]]
 *   [[System F|topics/week5 system F]]
-*   Types in OCaml and Haskell (will be posted soon)
-*   Practical advice for working with OCaml and/or Haskell (will be posted soon)
-*   [[Homework for weeks 5 and 6|exercises/assignment5]]
+*   Types in OCaml and Haskell (will be posted someday)
+*   Practical advice for working with OCaml and/or Haskell (will be posted someday)
+*   [[Homework for weeks 5 and 6|exercises/assignment5-6]] ([[Answers|exercises/assignment5-6_answers]])
+
 
-Outside readings for week 6:
+Week 6:
 
-*   [[footnote|readings/kaplan-plexy.pdf]] from Kaplan's *Demonstratives* about "Plexy"
+*   [[footnote about "Plexy"|readings/kaplan-plexy.pdf]] from Kaplan's *Demonstratives* about Plexy; [[our notes|topics/week6_plexy]] comparing to the Maybe type
+*   (Recommended) [[King's discussion of Schiffer|readings/king-on-schiffer.pdf]] in Chapter 4 of *The Nature and Structure of Content* (2007)
+*   (Recommended) [[King's discussion of clausal complements and proposition-designators|readings/king-on-logicism.pdf]] from Chapter 5 of *The Nature and Structure of Content* (2007) <!-- reviews and elaborates his paper "[Designating propositions](http://philpapers.org/rec/KINDP)" -->
 *   Michael Rieppel, "[[Being Something: Properties and Predicative Quantification|readings/rieppel-beingsthg.pdf]]"
-*   Optional: Jeff King, from *The Nature and Structure of Content*, on the difference between clausal complements and "the proposition that P", "the fact that P"
+
+Week 7:
+
+*   [[Combinatory evaluator|topics/week7_combinatory_evaluator]]
+*   [[Introducing Monads|topics/week7_introducing_monads]] (updated Mon 23 Mar)
+*   [[Homework for week 7|exercises/assignment7]] (updated Mon 23 Mar)
+*   [[Environments and Closures|topics/week7_environments_and_closures]]
+*   [[Untyped lambda evaluator|topics/week7_untyped_evaluator]]
+
+
+Week 8:
+
+*   [[Safe division with monads|topics/week8_safe_division_with_monads]]
+*   [[Reader Monad|/topics/week8_reader_monad]]
+*   [[Ramble on Monads and Modules|topics/week8_monads_and_modules]]
+
+Week 9:
+
+*   [[Installing and Using the Juli8 Libraries|/juli8]]
+*   [[Using the OCaml Monad library|/topics/week9_using_the_monad_library]]
+*   [[Programming with mutable state|/topics/week9_mutable_state]]
+*   [[A State Monad Tutorial|/topics/week9_state_monad_tutorial]]
+*   [[Using multiple monads together|/topics/week9_monad_transformers]]
+*   [[Homework for weeks 8-9|/exercises/assignment8-9]]
+
+Week 10:
+
+*   Groenendijk, Stokhof, and Veltman, "[[Coreference and Modality|/readings/coreference-and-modality.pdf]]" (1996)
+*   [[Notes on GSV|/topics/week10_gsv]], with links to code
+
+
+Week 12:
+
+*   Mutation and hyper-synonymy (no notes)
+*   [[Abortable list traversals|/topics/week12_abortable_traversals]]
+*   [[List and tree zippers|/topics/week12_list_and_tree_zippers]]
+*   [[Homework for week 12|exercises/assignment12]]
+
+Week 13:
+
+*   [[From list zippers to continuations|topics/week13_from_list_zippers_to_continuations]]
+*   [[Coroutines, exceptions, and aborts|topics/week13_coroutines_exceptions_and_aborts]]
+*   [[Let/cc and reset/shift|topics/week13_native_continuation_operators]]
+*   CPS transforms