File: once.sml

package info (click to toggle)
mlton 20100608-2
  • links: PTS
  • area: main
  • in suites: squeeze
  • size: 34,980 kB
  • ctags: 69,089
  • sloc: ansic: 18,421; lisp: 2,879; makefile: 1,570; sh: 1,325; pascal: 256; asm: 97
file content (20 lines) | stat: -rw-r--r-- 369 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
open SMLofNJ.Cont

val r: unit cont option ref = ref NONE

val a = ref 13
   
val () = callcc(fn k => r := SOME k)

val b = ref 13

val _ = a := !a - 1
val _ = b := !b - 1

val _ = print(concat["a = ", Int.toString(!a),
                     "  b = ", Int.toString(!b),
                     "\n"])

val _ = if !a = 0
           then ()
        else throw (valOf(!r)) ()