See her 1999 paper for details.
Here is [[code for the arithmetic tree Chris presented in week 8|code/arith1.ml]]. It computes
-`\x. (+ 1 (* (/ 6 x) 4))`. Your task is to modify it to compute
-`\x y. (+ 1 (* (/ 6 x) y))`. You will need to modify five lines.
+`\n. (+ 1 (* (/ 6 n) 4))`. Your task is to modify it to compute
+`\n m. (+ 1 (* (/ 6 n) m))`. You will need to modify five lines.
The first one is the type of a boxed int. Instead of `type num = int
-> int`, you'll need
type num = int -> int -> int
The second and third are the definitions of `mid` and `map2`. The fourth
-is the one that encodes the variable `x`, the line that begins `(Leaf
-(Num (fun x -> ...`. The fifth line you need to modify is the one
-that replaces "4" with "y". When you have these lines modified,
+is the one that encodes the variable `n`, the line that begins `(Leaf
+(Num (fun n -> ...`. The fifth line you need to modify is the one
+that replaces "4" with "m". When you have these lines modified,
you should be able to execute the following expression:
# match eval t2 with Leaf (Num f) -> f 2 4;;