diff options
Diffstat (limited to 'archive/1.vm/continuation1.mu')
-rw-r--r-- | archive/1.vm/continuation1.mu | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/archive/1.vm/continuation1.mu b/archive/1.vm/continuation1.mu new file mode 100644 index 00000000..8276e188 --- /dev/null +++ b/archive/1.vm/continuation1.mu @@ -0,0 +1,25 @@ +# Example program showing that 'return-continuation-until-mark' can 'pause' a +# function call, returning a continuation, and that calling the continuation +# can 'resume' the paused function call. +# +# To run: +# $ git clone https://github.com/akkartik/mu +# $ cd mu +# $ ./mu continuation1.mu +# +# Expected output: +# 1 + +def main [ + local-scope + k:continuation <- call-with-continuation-mark 100/mark, create-yielder + x:num <- call k # should return 1 + $print x 10/newline +] + +def create-yielder -> n:num [ + local-scope + load-inputs + return-continuation-until-mark 100/mark + return 1 +] |