Elixir さわってみた記念にFizzBuzzを書いてみました。
fizzbuzz.exs
defmodule Fizzbuzz do
def process(limit) do
process(1, limit)
end
def process(n, limit) when n > limit do
IO.puts "done."
end
def process(n, limit) do
case n do
n when rem(n, 15) == 0 ->
IO.puts "fizzbuzz"
n when rem(n, 5) == 0 ->
IO.puts "buzz"
n when rem(n, 3) == 0 ->
IO.puts "fizz"
n ->
IO.puts n
end
process(n + 1, limit)
end
end
System.argv |> List.first |> String.to_integer |> Fizzbuzz.process
パターンマッチをちゃんと勉強しようと思います。