tweak wrapper for delimcc
authorjim <jim@web>
Thu, 30 Apr 2015 16:19:15 +0000 (12:19 -0400)
committerLinux User <ikiwiki@localhost.members.linode.com>
Thu, 30 Apr 2015 16:19:15 +0000 (12:19 -0400)
topics/week13_native_continuation_operators.mdwn

index 8d64d2e..179b780 100644 (file)
@@ -105,7 +105,9 @@ However, OCaml doesn't have any continuation operators in its standard deploymen
     # #load "delimcc.cma";;
     # let reset_label = ref None;;
     # let reset body = let p = Delimcc.new_prompt () in
-      reset_label := Some p; let res = Delimcc.push_prompt p body in reset_label := None; res;;
+      let oldp = !reset_label in
+      reset_label := Some p; let res = Delimcc.push_prompt p body in
+      reset_label := oldp; res;;
     # let shift fun_k = match !reset_label with
       | None -> failwith "shift must be inside reset"
       | Some p -> Delimcc.shift p fun_k;;