remarks on T
[lambda.git] / topics / week8_reader_monad.mdwn
index 492f7a3..ff4310c 100644 (file)
@@ -449,7 +449,11 @@ arguments reversed (i.e., `(z k xx) == (xx >>= k)`).
 
 (The `T` combinator in the derivations above is given by `T x <~~> \f. f x`;
 it handles situations in which English word order reverses
-the usual function/argument order.)
+the usual function/argument order. `T` is what Curry and Steedman call this
+combinator. Jacobson calls it "lift", but it shouldn't be confused with the
+`mid` and `map` operations that lift values into the Reader monad we're focusing
+on here. It does lift values into a *different* monad, that we'll consider in
+a few weeks.)
 
 In other words, 
 Jacobson's variable-free semantics is essentially a Reader monad.
@@ -568,7 +572,7 @@ Now we add intensions. Because different people leave in different
 worlds, the meaning of *leave* must depend on the world in which it is
 being evaluated:
 
-    let left (x:e) (w:s) = match (x, w) with ('c', 2) -> false | _ -> true
+    let left (x : e) (w:s) = match (x, w) with ('c', 2) -> false | _ -> true
     left ann 1 (* true: Ann left in world 1 *)
     left cam 2 (* false: Cam didn't leave in world 2 *) 
 
@@ -691,4 +695,6 @@ he didn't leave in world 2, so Ann doesn't in world 1 believe that Cam left:
  (using `mbind`), and the non-intersective adjectives will take
  intensional arguments.
 
+**Connections with variable binding**: the rigid individual concepts generated by `mid ann` and the like correspond to the numerical constants, that don't interact with the environment in any way, in the variable binding examples we considered earlier on the page. If we had an non-contingent predicates that were wholly insensitive to intensional effects, they would be modeled using `map2` and would correspond to the operations like `map2 (+)` in the earlier examples. As it is, our predicates *lift* and *saw*, though only sensitive to the *extension* of their arguments, nonetheless *are* sensitive to the world of evaluation for their `bool` output. So these are somewhat akin, at the predicate level, to expressions like `var_n`, at the singular term level, in the variable bindings examples. Our predicate *thinks* shows yet a further kind of interaction with the intensional structures we introduced: namely, its output can depend upon evaluating its complement relative to other possible worlds. We didn't discuss analogues of this in the variable binding case, but they exist: namely, they are expressions like `let x = 2 in ...` and `forall x ...`, that have the effect of supplying their arguments with an environment or assignment function that is shifted from the one they are themselves being evaluated with.
+
 notes: cascade, general env