Current section
Files
Jump to
Current section
Files
lib/test.ex
defmodule Test do
@moduledoc false
import Exoteric
defcase fib do
0 -> 1
1 -> 1
n -> fib(n - 1) + fib(n - 2)
end
defcond fizzbuzz(n) do
rem(n, 15) == 0 -> "FizzBuzz"
rem(n, 5) == 0 -> "Buzz"
rem(n, 3) == 0 -> "Fizz"
n -> n
end
defmulti fib_tail_rec do
n -> fib_tail_rec(n, 1, 1)
0, a, _ -> a
n, a, b -> fib_tail_rec(n - 1, b, a + b)
end
def even_or_odd(n) do
rem(n, 2) == 0 \\ "even" \\ "odd"
end
def destructing_example do
map = %{
"string_key" => 1,
:atom_key => 2,
{1, 2} => 3,
%{key: "value"} => 4
}
destructure_map map do
string_key <- "string_key"
atom_key <- :atom_key
tuple_key <- {1, 2}
map_key <- %{key: "value"}
missing_key <- :does_not_exist
end
[
string_key,
atom_key,
tuple_key,
map_key,
missing_key
] = [1, 2, 3, 4, nil]
end
end