// -*- rust -*- fn f(x: int) -> int { // #debug("in f:"); log(debug, x); if x == 1 { // #debug("bottoming out"); ret 1; } else { // #debug("recurring"); let y: int = x * f(x - 1); // #debug("returned"); log(debug, y); ret y; } } fn main() { assert (f(5) == 120); // #debug("all done"); }