Here are two recursive fibonacci functions in ML I did for CS243. Can you tell which one is more efficient?
1 2 3 4 5 6 7 8 9 10 11 12 | fun fibonacci(n) = let fun fib((a, b), i)= if i=0 then b else fib((b, a + b), i-1); in fib((0, 1), n) end; fun fibonacci(0) = 1 | fibonacci(1) = 1 | fibonacci(n) = fibonacci(n-1) + fibonacci(n-2); |