From 3562cbe6843f487857521a01f5291a2e578a7ed9 Mon Sep 17 00:00:00 2001 From: Jim Pryor Date: Tue, 30 Nov 2010 11:31:42 -0500 Subject: [PATCH 1/1] week11 tweaks Signed-off-by: Jim Pryor --- assignment8.mdwn | 9 ++++----- week11.mdwn | 9 ++++----- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/assignment8.mdwn b/assignment8.mdwn index 5a2780d8..256b2ce9 100644 --- a/assignment8.mdwn +++ b/assignment8.mdwn @@ -29,16 +29,13 @@   let make_fringe_enumerator (t: 'a tree) = - (* create a zipper targetting the root of t *) - let zstart = new_zipper t - in let zbotleft = move_botleft zstart + (* create a zipper targetting the botleft of t *) + let zbotleft = move_botleft (new_zipper t) (* create a refcell initially pointing to zbotleft *) in let zcell = ref (Some zbotleft) (* construct the next_leaf function *) in let next_leaf () : 'a option = match !zcell with - | None -> (* we've finished enumerating the fringe *) - None | Some z -> ( (* extract label of currently-targetted leaf *) let Leaf current = z.filler @@ -48,6 +45,8 @@ | Some z' -> Some (move_botleft z') (* return saved label *) in Some current + | None -> (* we've finished enumerating the fringe *) + None ) (* return the next_leaf function *) in next_leaf diff --git a/week11.mdwn b/week11.mdwn index c20bc1f9..81534fcd 100644 --- a/week11.mdwn +++ b/week11.mdwn @@ -368,16 +368,13 @@ The following function takes an 'a tree and returns an 'a zipper focused on its Finally, we can use a mutable reference cell to define a function that enumerates a tree's fringe until it's exhausted: let make_fringe_enumerator (t: 'a tree) = - (* create a zipper targetting the root of t *) - let zstart = new_zipper t - in let zbotleft = move_botleft zstart + (* create a zipper targetting the botleft of t *) + let zbotleft = move_botleft (new_zipper t) (* create a refcell initially pointing to zbotleft *) in let zcell = ref (Some zbotleft) (* construct the next_leaf function *) in let next_leaf () : 'a option = match !zcell with - | None -> (* we've finished enumerating the fringe *) - None | Some z -> ( (* extract label of currently-targetted leaf *) let Leaf current = z.filler @@ -387,6 +384,8 @@ Finally, we can use a mutable reference cell to define a function that enumerate | Some z' -> Some (move_botleft z') (* return saved label *) in Some current + | None -> (* we've finished enumerating the fringe *) + None ) (* return the next_leaf function *) in next_leaf -- 2.11.0