ジェネリックforのセマンティクス
PiL本に載っているが、一応書く。
for var_1, ..., var_n in <explist> do <block> end
これは以下のコードと等価。
do local _f, _s, _var = <explist> while true do local var_1, ..., var_n = _f(_s, _var) _var = var_1 if _var == nil then break end <block> end end
_fはイテレータ関数、_sは不変状態、_varは制御変数。