1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
// -*- 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"); }