mirror of
https://github.com/rust-lang/rust
synced 2024-11-05 20:45:15 +00:00
26 lines
410 B
Rust
26 lines
410 B
Rust
// 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");
|
|
|
|
}
|