fn main() { fn fib(n: i32) -> i32 { fn _fib(n: i32, a: i32, b: i32) -> i32 { match (n, a, b) { (0, _, _) => a, _ => _fib(n-1, a+b, a) } } _fib(n, 0, 1) } for n in 0..20 { println!("{}", fib(n)); } }