Я пытался реализовать FizzBuzz в эликсире. Я думаю это работает, но у меня странное поведение, и это может быть моим окружением. Я могу запустить следующий .exs
файл, используя elixir fizzbuzz.exs
, и при первом запуске он работает так, как вы ожидаете. Даже на втором запуске это будет работать так, как вы ожидаете. Однако, если я подожду 7 или 8 секунд и запустлю его снова, он остановится на 13 или, может быть, 14. Он может даже достичь 50. На самом деле нет ничего слишком последовательного в том, что я испытываю. Я воспроизвел его при первом запуске, я воспроизвел его после двух секунд ожидания. Я даже провел несколько минут, не имея возможности воспроизвести это вообще. Пожалуйста, помогите мне ...
IO.puts "Hello world from Elixir"
defmodule Fizzbuzz do
def run(max) do
run(1, max)
end
def run(n, max) do
if rem(n, 3) == 0 do
IO.puts "FIZZ"
end
if rem(n, 5) == 0 do
IO.puts "BUZZ"
end
if rem(n, 3) != 0 && rem(n, 5) != 0 do
IO.puts n
end
if n < max do
run(n + 1, max)
end
end
end
Fizzbuzz.run(100)
#: Elixir -v
Erlang/OTP 21 [erts-10.2] [64-bit] [smp:12:12] [ds:12:12:10] [async-threads:1]
Elixir 1.9.4 (compiled with Erlang/OTP 20)