fibonacci n = (map fst $ iterate (\(a,b) -> (b,a+b)) (0,1)) !! n
fib a b = a : fib b (a+b) fibn = (!!) (fib 0 1)