diff options
author | s-lando | 2022-11-13 23:01:02 +0000 |
---|---|---|
committer | s-lando | 2022-11-13 23:01:02 +0000 |
commit | 1a7717e25e93599666803bb11f80c87117b01114 (patch) | |
tree | 08fda466d36c19896a3f1b078d961a0868ea0eae | |
parent | 7e8d796440aac327b911f86e6ed7502d7e095fcc (diff) |
elixir fibs
-rw-r--r-- | entries/s-lando/fib.ex | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/entries/s-lando/fib.ex b/entries/s-lando/fib.ex new file mode 100644 index 0000000..e4783d6 --- /dev/null +++ b/entries/s-lando/fib.ex @@ -0,0 +1,19 @@ +defmodule Fib do + # elegant + def fib(n) when n < 2, do: n + def fib(n), do: fib(n - 1) + fib(n - 2) + + + # less elegant + def fib2(n) do + fib2(n, 0, 1) + end + + def fib2(n, current, next) do + cond do + n == 0 -> current + n == 1 -> next + true -> fib2(n - 1, next, current + next) + end + end +end |