コルーチン
上記のメモした記事で、コルーチンでジェネレータを作成する場合に、coroutine.create()が使用されていて、使うときに、coroutine.resume()が使用されていたが、coroutine.wrap()を使用した方がもっと簡単に出来る。何故、coroutine.create()などを使用しているのだろうか?
function make_array_gen(ary) return function() for i=1, #ary do coroutine.yield(ary[i]) end end end for v in coroutine.wrap(make_array_gen({1,2,3})) do print(v) end -- 実行結果 1 2 3