//@ run-pass | |
fn f(x: isize) -> isize { | |
// println!("in f:"); | |
println!("{}", x); | |
if x == 1 { | |
// println!("bottoming out"); | |
return 1; | |
} else { | |
// println!("recurring"); | |
let y: isize = x * f(x - 1); | |
// println!("returned"); | |
println!("{}", y); | |
return y; | |
} | |
} | |
pub fn main() { | |
assert_eq!(f(5), 120); | |
// println!("all done"); | |
} |