xref: /f-stack/app/redis-5.0.5/deps/lua/test/fibfor.lua (revision 572c4311)
1*572c4311Sfengbojiang-- example of for with generator functions
2*572c4311Sfengbojiang
3*572c4311Sfengbojiangfunction generatefib (n)
4*572c4311Sfengbojiang  return coroutine.wrap(function ()
5*572c4311Sfengbojiang    local a,b = 1, 1
6*572c4311Sfengbojiang    while a <= n do
7*572c4311Sfengbojiang      coroutine.yield(a)
8*572c4311Sfengbojiang      a, b = b, a+b
9*572c4311Sfengbojiang    end
10*572c4311Sfengbojiang  end)
11*572c4311Sfengbojiangend
12*572c4311Sfengbojiang
13*572c4311Sfengbojiangfor i in generatefib(1000) do print(i) end
14