mirror of
				https://github.com/rust-lang/rust.git
				synced 2025-11-03 22:49:17 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			27 lines
		
	
	
		
			410 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			27 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");
 | 
						|
 | 
						|
}
 |