projects
/
lambda.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
state monad tutorial, records tweaks
[lambda.git]
/
intensionality-monad.ml
diff --git
a/intensionality-monad.ml
b/intensionality-monad.ml
index
d1f21d2
..
eebe5ee
100644
(file)
--- a/
intensionality-monad.ml
+++ b/
intensionality-monad.ml
@@
-29,13
+29,13
@@
saw bill ann 2;; (* Ann didn't see Bill in world 2 *)
type 'a intension = s -> 'a;;
let unit x (w:s) = x;;
let bind m f (w:s) = f (m w) w;;
type 'a intension = s -> 'a;;
let unit x (w:s) = x;;
let bind m f (w:s) = f (m w) w;;
-let lift f u v = bind u (fun x -> bind v (fun y -> f x y));;
+let lift
2'
f u v = bind u (fun x -> bind v (fun y -> f x y));;
bind (unit ann) left 1;;
bind (unit cam) left 2;;
bind (unit ann) left 1;;
bind (unit cam) left 2;;
-lift saw (unit bill) (unit ann) 1;;
-lift saw (unit bill) (unit ann) 2;;
+lift
2'
saw (unit bill) (unit ann) 1;;
+lift
2'
saw (unit bill) (unit ann) 2;;
let thinks (p:s->t) (x:e) (w:s) =
match (x, p 2) with ('a', false) -> false | _ -> p w;;
let thinks (p:s->t) (x:e) (w:s) =
match (x, p 2) with ('a', false) -> false | _ -> p w;;