manip trees: tweaks
[lambda.git] / manipulating_trees_with_monads.mdwn
index d3ccc98..dcba312 100644 (file)
@@ -35,7 +35,7 @@ We'll be using trees where the nodes are integers, e.g.,
         ___|___
         |     |
         .     .
-       _|__  _|__
+       _|_   _|__
        |  |  |  |
        2  3  5  .
                _|__
@@ -48,7 +48,7 @@ Our first task will be to replace each leaf with its double:
          match t with
            | Leaf x -> Leaf (newleaf x)
            | Node (l, r) -> Node ((treemap newleaf l),
-                                 (treemap newleaf r));;
+                                  (treemap newleaf r));;
 
 `treemap` takes a function that transforms old leaves into new leaves,
 and maps that function over all the leaves in the tree, leaving the
@@ -87,23 +87,22 @@ to each subpart of the computation.  In other words, `treemap` has the
 behavior of a reader monad.  Let's make that explicit.
 
 In general, we're on a journey of making our treemap function more and
-more flexible.  So the next step---combining the tree transducer with
+more flexible.  So the next step---combining the tree transformer with
 a reader monad---is to have the treemap function return a (monadized)
 tree that is ready to accept any `int->int` function and produce the
 updated tree.
 
-\tree (. (. (f2) (f3))(. (f5) (.(f7)(f11))))
 
-       \f    .
-         ____|____
-         |       |
-         .       .
-       __|__   __|__
-       |   |   |   |
-       f2  f3  f5  .
-                 __|___
-                 |    |
-                 f7  f11
+       \f      .
+          _____|____
+          |        |
+          .        .
+        __|___   __|___
+        |    |   |    |
+       f 2  f 3  f 5  .
+                    __|___
+                    |    |
+                   f 7  f 11
 
 That is, we want to transform the ordinary tree `t1` (of type `int
 tree`) into a reader object of type `(int->int)-> int tree`: something
@@ -159,7 +158,7 @@ result:
        - : int tree =
        Node (Node (Leaf 4, Leaf 9), Node (Leaf 25, Node (Leaf 49, Leaf 121)))
 
-Now that we have a tree transducer that accepts a monad as a
+Now that we have a tree transformer that accepts a monad as a
 parameter, we can see what it would take to swap in a different monad.
 For instance, we can use a state monad to count the number of nodes in
 the tree.