aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--entries/s-lando/fib.ex20
-rw-r--r--people.json11
2 files changed, 31 insertions, 0 deletions
diff --git a/entries/s-lando/fib.ex b/entries/s-lando/fib.ex
new file mode 100644
index 0000000..fae4d3c
--- /dev/null
+++ b/entries/s-lando/fib.ex
@@ -0,0 +1,20 @@
+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
diff --git a/people.json b/people.json
index bae371e..59f55bf 100644
--- a/people.json
+++ b/people.json
@@ -653,5 +653,16 @@
"link": "./entries/gerui/fib.pl"
}
]
+ },
+ {
+ "github": "s-lando",
+ "name": "Sam Lando",
+ "title": "BA, UBC",
+ "entries": [
+ {
+ "name": "elixir",
+ "link": "./entries/s-lando/fib.ex"
+ }
+ ]
}
]