manip trees: tweaks
[lambda.git] / assignment6.mdwn
index 62d1c5c..30763c1 100644 (file)
@@ -2,16 +2,17 @@
 build a system that will evaluate arithmetic expressions.  Instead of
 returning a simple integer as a result, it will deliver the correct
 answer along with a count of the number of operations performed during
 build a system that will evaluate arithmetic expressions.  Instead of
 returning a simple integer as a result, it will deliver the correct
 answer along with a count of the number of operations performed during
-the calculuation.  That is, the desired behavior should be like this:
+the calculation.  That is, the desired behavior should be like this:
 
 
-    # lift ( + ) (lift ( / ) (unit 20) (unit 2)) (lift ( * ) (unit 2) (unit 3)) 0;;
-    - : int * int = (16, 3)
+                 # lift2 ( + ) (lift2 ( / ) (unit 20) (unit 2))
+                                  (lift2 ( * ) (unit 2) (unit 3)) 0;;
+                     - : int * int = (16, 3)
 
 
-    Here, `lift` is the function that uses `bind` to prepare an ordinary
+    Here, `lift2` is the function that uses `bind` to prepare an ordinary
 arithmetic operator (such as addition `( + )`, division `( / )`, or
 multiplication `( * )`) to recieve objects from the counting monad as
 arguments.  The response of the interpreter says two things: that
 arithmetic operator (such as addition `( + )`, division `( / )`, or
 multiplication `( * )`) to recieve objects from the counting monad as
 arguments.  The response of the interpreter says two things: that
-(20/2) + (2*3) = 16, and that the computation took three arithmetic
+(20/2) + (2\*3) = 16, and that the computation took three arithmetic
 steps.  By the way, that zero at the end provides the monadic object
 with a starting point (0 relevant computations have occurred previous
 to the current computation).
 steps.  By the way, that zero at the end provides the monadic object
 with a starting point (0 relevant computations have occurred previous
 to the current computation).
@@ -20,8 +21,8 @@ to the current computation).
 divide by zero (so there should be no int option types anywhere in
 your solution).
 
 divide by zero (so there should be no int option types anywhere in
 your solution).
 
-     You'll need to define a computation monad type, unit, bind, and lift.
-We encourage you to consider this hint: [[Assignment 6 Hint 1]].
+     You'll need to define a computation monad type, unit, bind, and lift2.
+We encourage you to consider this hint: [[hints/Assignment 6 Hint 1]].
 
 2. Prove that your monad satisfies the monad laws.  First, give
 examples illustrating specific cases in which the monad laws are
 
 2. Prove that your monad satisfies the monad laws.  First, give
 examples illustrating specific cases in which the monad laws are