ExercĂcio: Funções-2:
Escreva uma função que receba três argumentos. Se os dois primeiros forem zero, retorne “FizzBuzz”. Se o primeiro for zero, retorna “Fizz”. Se o segundo for zero, retorne “Buzz”. Caso contrário, retorne o terceiro argumento. Não use nenhum recurso de linguagem que ainda não tenhamos abordado neste livro.
ExercĂcio: Funções-3:
O operador rem (a, b) retorna o resto apĂłs dividir a por b. Escreva uma função que recebe um Ăşnico inteiro (n) chama a função do exercĂcio anterior, passando rem (n, 3), rem (n, 5) e n. Chame 7 vezes com os argumentos 10, 11, 12, etc. VocĂŞ deve obter “Buzz, 11, Fizz, 13, 14, FizzBuzz”, 16 ”.
fizz_buzz = function do
(0, 0, _) -> "FizzBuzz"
(0, _, _) -> "Fizz"
(_, 0, _) -> "Buzz"
(_, _, x) -> x
end
check_fizz_buzz = function do
(n) -> fizz_buzz.(rem(n,3), rem(n,5),n)
end
Enum.each([10,11,12,13,14,15,16], fn(n) ->
IO.puts "FizzBuzz(#{n}):: #{check_fizz_buzz.(n)}"
end)
resultado:
FizzBuzz(10):: Buzz
FizzBuzz(11):: 11
FizzBuzz(12):: Fizz
FizzBuzz(13):: 13
FizzBuzz(14):: 14
FizzBuzz(15):: FizzBuzz
FizzBuzz(16):: 16
Desafio do Elixir de programação