Julia 中是否有一个懒惰的迭代“map”?

xia*_*dai 3 julia

map功能似乎急切,例如

map(x->x+1, 1:3)给一个[2,3,4]

我想找到一个懒惰的迭代版本,map以便不会一次生成所有值,因此我可以从map?

Bog*_*ski 6

您可以Base.Generator为此使用,例如在您的情况下:

julia> g = (x + 1 for x in 1:3)
Base.Generator{UnitRange{Int64},getfield(Main, Symbol("##5#6"))}(getfield(Main, Symbol("##5#6"))(), 1:3)

julia> collect(g)
3-element Array{Int64,1}:
 2
 3
 4
Run Code Online (Sandbox Code Playgroud)