rust/src/test/run-pass/tail-cps.rs
2010-06-23 21:03:09 -07:00

35 lines
436 B
Rust

// -*- rust -*-
fn checktrue(bool res) -> bool {
check(res);
ret true;
}
fn main() {
auto k = checktrue;
evenk(42, k);
oddk(45, k);
}
fn evenk(int n, fn(bool) -> bool k) -> bool {
log "evenk";
log n;
if (n == 0) {
be k(true);
}
else {
be oddk(n - 1, k);
}
}
fn oddk(int n, fn(bool) -> bool k) -> bool {
log "oddk";
log n;
if (n == 0) {
be k(false);
}
else {
be evenk(n - 1, k);
}
}