gpt4 book ai didi

elixir - 你如何在 Elixir 中进行多次试验?

转载 作者:行者123 更新时间:2023-12-04 16:34:41 25 4
gpt4 key购买 nike

在 Ruby 中,您可以执行以下操作:
10.times { puts 'hello world' }
我能在 Elixir 中提出的最佳方法是:
Enum.each((0..10), fn(x) -> IO.puts 'hello world' end)
如果在程序中运行,您会收到警告 hello_world.exs:1: warning: variable x is unused .

问题:在 Elixir 中是否有更好的方法来做到这一点?

背景:我正在做一个需要进行 3,000,000 次试验的模拟。我不是在迭代列表。一个简化的场景是进行 3,000,000 次抛硬币并记录正面的数量。

最佳答案

在这种情况下不要生成列表,只需使用递归:

defmodule M do
def func(0), do: nil
def func(n) do
IO.puts "hello world"
func(n-1)
end
end

M.func(10)

或者你可以实现一种类似 Ruby 的方式来做同样的事情:
defmodule RubyHelpers do
def times(0, _), do: nil
def times(n, func) do
func.()
times(n-1, func)
end
end

import RubyHelpers
10 |> times(fn -> IO.puts "hello world" end)

关于elixir - 你如何在 Elixir 中进行多次试验?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34834329/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com