経緯
完全に@kmagaiさんのGo言語で5の倍数と5のつく数字だけヒロミゴーするに乗っかりました。
Goではないですが、どんな言語でもヒロミゴーでエキゾチック・ジャパンなFizzBuzzして良いのでは???という思いです。
ルールは全く同じ。5がつく数字でExotic、5の倍数でJapan、両立したらExotic Japan。
コード
go.exs
defmodule ExoticJapan do
def go!(num) when num > 0 do
Enum.each 1..num, fn (i) ->
IO.puts "#{i} " <> hiromi(exotic?(i), japan?(i))
end
end
defp hiromi(true, true), do: "Exotic Japan"
defp hiromi(true, false), do: "Exotic"
defp hiromi(false, true), do: "Japan"
defp hiromi(false, false), do: ""
defp exotic?(num), do: to_string(num) |> String.contains?("5")
defp japan?(num), do: rem(num, 5) == 0
end
System.argv |> List.first |> String.to_integer |> ExoticJapan.go!
$ elixir go.exs 240000000
所感
hiromi/2
が美しくない。もうちょっとどうにかならんかね。