- ; (+ 100 (prompt (+ 10 (shift k (k (k 1)))))) ~~> 121
- app3 (op2 plus) (var hundred)
- (prompt (app3 (op2 plus) (var ten)
- (shift (\k. app (var k) (app (var k) (var one))))))
-
-
-More:
-
- (* (+ 1000 (prompt (+ 100 (shift k (+ 10 1))))) ~~> 1011 *)
- let example1 () : int =
- Continuation_monad.(let v = reset (
- let u = shift (fun k -> unit (10 + 1))
- in u >>= fun x -> unit (100 + x)
- ) in let w = v >>= fun x -> unit (1000 + x)
- in run w)