Merge branch 'pryor'
authorJim Pryor <profjim@jimpryor.net>
Tue, 2 Nov 2010 11:49:10 +0000 (07:49 -0400)
committerJim Pryor <profjim@jimpryor.net>
Tue, 2 Nov 2010 11:49:10 +0000 (07:49 -0400)
assignment6.mdwn
hints/assignment_6_hint_1.mdwn [moved from assignment_6_hint_1.mdwn with 100% similarity]
intensionality_monad.mdwn
week7.mdwn

index f1a892a..7a2bb0f 100644 (file)
@@ -22,7 +22,7 @@ divide by zero (so there should be no int option types anywhere in
 your solution).
 
      You'll need to define a computation monad type, unit, bind, and lift.
-We encourage you to consider this hint: [[Assignment 6 Hint 1]].
+We encourage you to consider this hint: [[hints/Assignment 6 Hint 1]].
 
 2. Prove that your monad satisfies the monad laws.  First, give
 examples illustrating specific cases in which the monad laws are
index 83824a4..5b0ec3a 100644 (file)
@@ -24,11 +24,11 @@ First, the familiar linguistic problem:
           Ann believes [Bill left].
           Ann believes [Cam left].
 
-We want an analysis on which all four of these sentences can be true
-simultaneously.  If sentences denoted simple truth values or booleans,
-we have a problem: if the sentences *Bill left* and *Cam left* are
-both true, they denote the same object, and Ann's beliefs can't
-distinguish between them.
+We want an analysis on which the first three sentences can be true at
+the same time that the last sentence is false.  If sentences denoted
+simple truth values or booleans, we have a problem: if the sentences
+*Bill left* and *Cam left* are both true, they denote the same object,
+and Ann's beliefs can't distinguish between them.
 
 The traditional solution to the problem sketched above is to allow
 sentences to denote a function from worlds to truth values, what
@@ -143,7 +143,7 @@ matter which world is used as an argument.  This is a typical kind of
 thing for a monad unit to do.
 
 Then combining a prediction like *left* which is extensional in its
-subject argument with a monadic subject like `unit ann` is simply bind
+subject argument with an intensional subject like `unit ann` is simply bind
 in action:
 
     bind (unit ann) left 1;; (* true: Ann left in world 1 *)
index 79983c3..857a636 100644 (file)
@@ -457,7 +457,7 @@ presented here, a monad is not exactly a monoid, because (unlike the
 arguments of a monoid operation) the two arguments of the bind are of
 different types.  But it's possible to make the connection between
 monads and monoids much closer. This is discussed in [Monads in Category
-Theory](/advanced_notes/monads_in_category_theory).
+Theory](/advanced_topics/monads_in_category_theory).
 See also <http://www.haskell.org/haskellwiki/Monad_Laws>.
 
 Here are some papers that introduced monads into functional programming:
@@ -484,7 +484,7 @@ invited talk, *19'th Symposium on Principles of Programming Languages*, ACM Pres
 There's a long list of monad tutorials on the [[Offsite Reading]] page. Skimming the titles makes us laugh.
 
 In the presentation we gave above---which follows the functional programming conventions---we took `unit`/return and `bind` as the primitive operations. From these a number of other general monad operations can be derived. It's also possible to take some of the others as primitive. The [Monads in Category
-Theory](/advanced_notes/monads_in_category_theory) notes do so, for example.
+Theory](/advanced_topics/monads_in_category_theory) notes do so, for example.
 
 Here are some of the other general monad operations. You don't have to master these; they're collected here for your reference.