1 # Example program showing that 'return-continuation-until-mark' can 'pause' a 2 # function call, returning a continuation, and that calling the continuation 3 # can 'resume' the paused function call. 4 # 5 # To run: 6 # $ git clone https://github.com/akkartik/mu 7 # $ cd mu 8 # $ ./mu continuation1.mu 9 # 10 # Expected output: 11 # 1 12 13 def main [ 14 local-scope 15 k:continuation <- call-with-continuation-mark 100/mark, create-yielder 16 x:num <- call k # should return 1 17 $print x 10/newline 18 ] 19 20 def create-yielder -> n:num [ 21 local-scope 22 load-inputs 23 return-continuation-until-mark 100/mark 24 return 1 25 ]