朱莉娅:一系列功能

时间:2015-02-16 17:07:31

标签: julia

我试图在Julia中填充一系列函数。最小的例子是

function nice()
  i=1
  while true
    f() = i
    produce(f)
    i+=1
  end
end

ye = Task(() -> nice())
funcs = Function[]

for i in [1:2]
  push!(funcs,consume(ye))
  println("Why does this not stay the same???")
  println(funcs[1]())
end 

问题是funcs [1]从返回1的那个变为返回2的那个!请帮帮我!

1 个答案:

答案 0 :(得分:1)

这解决了它。我需要一个let命令和f =() - > j语句

function nice()
  i=1
  while true
    let j=i
      f=()->j
      produce(f)
    end
    i+=1
  end
end
ye = Task(() -> nice())
funcs = Function[]
for k in [1:2]
  push!(funcs,consume(ye))
end
println(funcs[1]())
println(funcs[2]())