【发布时间】:2018-03-24 05:22:39
【问题描述】:
我有一个简单的 Go for 循环,我想学习如何使用 Elixir 中的递归来执行此操作。我现在真的不知道递归循环是如何工作的,但我正在研究这部分!我也不知道这是否是执行递归函数的正确方法。
package main
import "fmt"
func main() {
for i := 0; i < 10000000; i++ {
fmt.Println(i)
}
}
defmodule Looping do
def loops(i, e) when e <= 0 do
IO.puts i + e
end
def loops(i, e) do
IO.puts i + e
loops(i, e + 1)
end
end
Looping.loops(1, 1)
在 Elixir 中运行时产生 1 + 1 + 1。
Martin 在初学者 slack 频道提出以下建议。
1..1_000_000 |> Enum.each(&IO.puts/1)
【问题讨论】:
-
我不知道 Go - 最初的 10000000 行打印循环是做什么用的?
-
这是我们要打印的数字。所以打印 i + 1 到 10000000。
-
好的-现在很清楚-请参阅下面的代码。这基本上是您添加的 Martin 的更详细版本
-
虽然 Martin 的代码确实可以在 Elixir 中运行,但 GavinBrelstaff 和 SashaFonseca 在下面提出的解决方案都是使用递归执行“for”循环的更通用的方法。
标签: elixir