fun isEvn (x: int): bool =
if x > 0 then isOdd (x - 1) else true
and isOdd (x: int): bool =
if x > 0 then isEvn (x - 1) else false
typedef ans_t = bool
typedef cont (a: t@ype) = a -<cloref1> ans_t
fun kisEvn (x: int, k: cont bool): ans_t =
if x > 0 then kisOdd (x - 1, k) else k (true)
and kisOdd (x: int, k: cont bool): ans_t =
if x > 0 then kisEvn (x - 1, k) else k (false)
val K0 = lam (res: bool): ans_t =<cloref1> res
val ans = kisEvn (100, K0)
val () = (
print ("kisEvn (100, \\res => res) = "); print ans; print_newline ()
)
val ans = kisOdd (100, K0)
val () = (
print ("kisOdd (100, \\res => res) = "); print ans; print_newline ()
)
implement main () = ()