Compare commits

...

4 Commits

1 changed files with 29 additions and 0 deletions

29
control/fizzbuzz.ex Normal file
View File

@ -0,0 +1,29 @@
defmodule FizzBuzz do
def count(number) do
1..number
|> Enum.to_list
|> Enum.map(&FizzBuzz.check/1)
end
def check(number) when number > 0 do
cond do
rem(number, 5) == 0 and rem(number, 3) == 0 ->
"Fizzbuzz!"
rem(number, 5) == 0 ->
"Buzz!"
rem(number, 3) == 0 ->
"Fizz!"
true ->
number
end
end
end
defmodule ElixirFizzbuzz do
def upto(n) when n > 0, do: 1..n |> Enum.map(&fizzbuzz/1)
def fizzbuzz(n) when rem(n, 3) == 0 and rem(n, 5) == 0, do: "Fizzbuzz!"
def fizzbuzz(n) when rem(n, 3) == 0, do: "Fizz"
def fizzbuzz(n) when rem(n, 5) == 0, do: "Buzz"
def fizzbuzz(n) when n > 0, do: n
end