tweak indexes
[lambda.git] / week9.mdwn
index 546b2d2..d1f8061 100644 (file)
@@ -446,9 +446,9 @@ Here's the implementation of the State monad, together with an implementation of
        (* alternatively, an env could be implemented as type char -> int *)
 
        type 'a reader = env -> 'a;;
-       let unit_reader (value : 'a) : 'a reader =
+       let reader_unit (value : 'a) : 'a reader =
                fun e -> value;;
-       let bind_reader (u : 'a reader) (f : 'a -> 'b reader) : 'b reader =
+       let reader_bind (u : 'a reader) (f : 'a -> 'b reader) : 'b reader =
                fun e -> let a = u e
                                 in let u' = f a
                                 in u' e;;
@@ -458,9 +458,9 @@ Here's the implementation of the State monad, together with an implementation of
        (* this corresponds to having only a single mutable variable *)
 
        type 'a state = store -> ('a, store);;
-       let unit_state (value : 'a) : 'a state =
+       let state_unit (value : 'a) : 'a state =
                fun s -> (value, s);;
-       let bind_state (u : 'a state) (f : 'a -> 'b state) : 'b state =
+       let state_bind (u : 'a state) (f : 'a -> 'b state) : 'b state =
                fun s -> let (a, s') = u s
                                 in let u' = f a
                                 in u' s';;
@@ -503,6 +503,8 @@ To get the whole process started, the complex computation so defined will need t
        in computation initial_store;;
 
 
+*      See also our [[State Monad Tutorial]].
+
 
 ##Aliasing or Passing by reference##