Elixir 脚本未完成

Oxy*_*ron 7 erlang elixir erlang-otp

我尝试在 elixir 中实现 FizzBu​​zz。我认为它有效,但我有一些奇怪的行为,这可能是我的环境。我可以.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)
Run Code Online (Sandbox Code Playgroud)

证据

#: 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)
Run Code Online (Sandbox Code Playgroud)

Dog*_*Dog 1

首先,尝试更新到 Elixir 目前的最新版本1.13

尝试使用 运行您的文件mix run <filename>,因此在您的情况下:

mix run fizzbuzz.exs
Run Code Online (Sandbox Code Playgroud)