From 809878c89ac05c6114b6d205c3cf0788714c8755 Mon Sep 17 00:00:00 2001 From: Chris Barker Date: Mon, 6 Dec 2010 07:27:10 -0500 Subject: [PATCH] edits --- manipulating_trees_with_monads.mdwn | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/manipulating_trees_with_monads.mdwn b/manipulating_trees_with_monads.mdwn index 2ec15d6a..38f8ff3b 100644 --- a/manipulating_trees_with_monads.mdwn +++ b/manipulating_trees_with_monads.mdwn @@ -95,8 +95,6 @@ a Reader monad---is to have the `tree_map` function return a (monadized) tree that is ready to accept any `int -> int` function and produce the updated tree. -\tree (. (. (f 2) (f 3)) (. (f 5) (. (f 7) (f 11)))) - \f . _____|____ | | @@ -267,8 +265,8 @@ it through: let rec tree_monadize_rev (f : 'a -> 'b state) (t : 'a tree) : 'b tree state = match t with | Leaf a -> state_bind (f a) (fun b -> state_unit (Leaf b)) - | Node (l, r) -> state_bind (tree_monadize f r) (fun r' -> - state_bind (tree_monadize f l) (fun l' -> + | Node (l, r) -> state_bind (tree_monadize f r) (fun r' -> (* R first *) + state_bind (tree_monadize f l) (fun l'-> (* Then L *) state_unit (Node (l', r'))));; # tree_monadize_rev (fun a -> fun s -> (s+1, s+1)) t1 0;; @@ -407,8 +405,6 @@ induction on the structure of the first argument that the tree resulting from `bind u f` is a tree with the same strucure as `u`, except that each leaf `a` has been replaced with `f a`: -\tree (. (f a1) (. (. (. (f a2) (f a3)) (f a4)) (f a5))) - . . __|__ __|__ | | | | @@ -438,9 +434,6 @@ As for the associative law, we'll give an example that will show how an inductive proof would proceed. Let `f a = Node (Leaf a, Leaf a)`. Then -\tree (. (. (. (. (a1) (a2))))) -\tree (. (. (. (. (a1) (a1)) (. (a1) (a1))))) - . ____|____ . . | | -- 2.11.0