erlang - Elixir 脚本未完成
问题描述
我试图在 elixir 中实现 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)
解决方案
首先,尝试更新到当前最新版本的 Elixir 1.13
。
尝试使用 运行您的文件mix run <filename>
,因此在您的情况下:
mix run fizzbuzz.exs
推荐阅读
- python - 我写了一个 LockedList 装饰器。我该如何测试它?
- performance - Dart/Flutter 中的 TimingLogger 等价物是什么?
- google-coral - 我实际上重置了我的 Coral Dev 板上的 MDT 键,但不是它不允许我访问板
- python - 我正面临 tkinter 按钮样式“_tkinter.TclError: Invalid state name a”的问题
- pytorch - 边界框的位置和大小不正确,如何提高它的准确性?
- laravel - Laravel 中的 Artisan::call 方法不起作用
- javascript - 从菜单链接安装渐进式网络应用程序
- android - 如何在 Android 中添加加减按钮
- swift - 如何使用 Swift 进行 API 调用?
- c++ - 异步 C++ 套接字