From 5059f32d0ddf36b9591ad0c14ee474ad5f2f8816 Mon Sep 17 00:00:00 2001 From: "Kartik K. Agaram" Date: Fri, 15 Dec 2017 00:15:47 -0800 Subject: 4160 - named marks for delimited continuations Hypothesis: this is needed to build McCarthy's amb operator. https://rosettacode.org/wiki/Amb --- same-fringe.mu | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'same-fringe.mu') diff --git a/same-fringe.mu b/same-fringe.mu index 14719eb8..a1e619b7 100644 --- a/same-fringe.mu +++ b/same-fringe.mu @@ -30,8 +30,8 @@ def main [ def same-fringe a:&:tree:_elem, b:&:tree:_elem -> result:bool [ local-scope load-inputs - k1:continuation <- call-with-continuation-mark process, a - k2:continuation <- call-with-continuation-mark process, b + k1:continuation <- call-with-continuation-mark 100/mark, process, a + k2:continuation <- call-with-continuation-mark 100/mark, process, b { k1, x:_elem, a-done?:bool <- call k1 k2, y:_elem, b-done?:bool <- call k2 @@ -48,10 +48,10 @@ def same-fringe a:&:tree:_elem, b:&:tree:_elem -> result:bool [ def process t:&:tree:_elem [ local-scope load-inputs - return-continuation-until-mark # initial + return-continuation-until-mark 100/mark # initial traverse t zero-val:&:_elem <- new _elem:type - return-continuation-until-mark *zero-val, 1/done # final + return-continuation-until-mark 100/mark, *zero-val, 1/done # final assert 0/false, [continuation called past done] ] @@ -68,7 +68,7 @@ def traverse t:&:tree:_elem [ return-if r # leaf v:_elem <- get *t, val:offset - return-continuation-until-mark v, 0/not-done + return-continuation-until-mark 100/mark, v, 0/not-done ] # details -- cgit 1.4.1-2-gfad0