#light let fib n = let rec fib_aux (n, a, b) = match (n, a, b) with | (0, a, b) -> a | _ -> fib_aux (n - 1, a + b, a) fib_aux (n, 0, 1) // BigInt version. let big_fib n = let rec big_fib_aux (n, a, b) = match (n, a, b) with | (0, a, b) -> a | _ -> big_fib_aux (n - 1, a + b, a) big_fib_aux (n, 0I, 1I)