From 6ce10857443878d3f6899e1ab359a219bf7eb363 Mon Sep 17 00:00:00 2001 From: Jim Pryor Date: Thu, 23 Dec 2010 22:54:35 -0500 Subject: [PATCH] ass10 hint tweaks Signed-off-by: Jim Pryor --- hints/assignment_10_hint_4.mdwn | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/hints/assignment_10_hint_4.mdwn b/hints/assignment_10_hint_4.mdwn index bb5a7997..ee6f8bc6 100644 --- a/hints/assignment_10_hint_4.mdwn +++ b/hints/assignment_10_hint_4.mdwn @@ -49,12 +49,13 @@ I said earlier, the encapsulation enforced by that library may make it somewhat module TC = T.T(C);; module TS = T.T(S);; module TR = T.T(R);; + let tree = Some (T.Node(T.Leaf '1', T.Node(T.Leaf '2', T.Node(T.Leaf '3', T.Leaf '1'))));; # let v0 = TC.(run_exn (distribute (fun a -> C.(shift (fun k -> k a >>= fun v -> unit (1+v))) ) tree)) (fun a -> 0);; - - : int = 5 + - : int = 4 # let v1 = TC.(run_exn (distribute (fun a -> @@ -69,8 +70,10 @@ I said earlier, the encapsulation enforced by that library may make it somewhat v1 '2';; ~~> 1 *) + # let annotater : char -> ('x, char) S.m = + fun a -> S.(puts (fun s -> (update_env s a)) >> unit a);; # let v2 = TS.(run (distribute annotater tree)) (fun a -> 0);; - # let (tree',env) = v2 in TR.(run (distribute (fun a -> a) tree')) env;; + # let (t, env) = v2 in TR.(run (distribute (fun a -> R.asks (fun e -> e a)) t)) env;; (* returns tree with leafs replaced with their numbers of occurrences *) -- 2.11.0