summaryrefslogtreecommitdiff
path: root/src/code/2/fib_itr.exs
diff options
context:
space:
mode:
authorkballou <kballou@devnulllabs.io>2016-03-18 23:18:38 -0600
committerkballou <kballou@devnulllabs.io>2016-03-18 23:18:38 -0600
commit295bf24053425eed651f69b1660c778d0efab62d (patch)
treeabb2fef2dcfe72eff53a17315fbe720aa422f1ee /src/code/2/fib_itr.exs
parentf6dbc3e24ae3aaccc2c2485441dca56e029b4ad5 (diff)
downloadfunc-w-elixir-295bf24053425eed651f69b1660c778d0efab62d.tar.gz
func-w-elixir-295bf24053425eed651f69b1660c778d0efab62d.tar.xz
Misc code example updates
Use more idiomatic examples
Diffstat (limited to 'src/code/2/fib_itr.exs')
-rw-r--r--src/code/2/fib_itr.exs7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/code/2/fib_itr.exs b/src/code/2/fib_itr.exs
index 2eafcee..affd347 100644
--- a/src/code/2/fib_itr.exs
+++ b/src/code/2/fib_itr.exs
@@ -1,14 +1,13 @@
defmodule Fib do
def seq(0), do: 0
def seq(1), do: 1
- def seq(n) when n > 1, do: compute_seq(n, 1, [0, 1])
+ def seq(n) when n > 1, do: compute_seq(n, 1, [1, 0])
defp compute_seq(n, i, acc) when n == i do
- Enum.at(acc, length(acc) - 1)
+ hd(acc)
end
defp compute_seq(n, i, acc) do
- len = length(acc)
- compute_seq(n, i + 1, acc++[Enum.at(acc, len-1) + Enum.at(acc, len-2)])
+ compute_seq(n, i+1, [Enum.at(acc, 0) + Enum.at(acc, 1) | acc])
end
end