summaryrefslogtreecommitdiff
path: root/src/code/2/fib_itr.exs
blob: affd347d720b6f3205e505b21a7c6ccb65232ee7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
defmodule Fib do
  def seq(0), do: 0
  def seq(1), do: 1
  def seq(n) when n > 1, do: compute_seq(n, 1, [1, 0])

  defp compute_seq(n, i, acc) when n == i do
    hd(acc)
  end
  defp compute_seq(n, i, acc) do
    compute_seq(n, i+1, [Enum.at(acc, 0) + Enum.at(acc, 1) | acc])
  end
end

IO.puts Fib.seq(50)