# HG changeset patch # User Matthew Wild # Date 1237950070 0 # Node ID 75b8afb791431d38e0b11de3a33c96a3ef432a38 # Parent 967edf874df79c31e40018a2d4438a4f0cc558c4 util.iterators: New iterators library diff -r 967edf874df7 -r 75b8afb79143 util/iterators.lua --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/util/iterators.lua Wed Mar 25 03:01:10 2009 +0000 @@ -0,0 +1,94 @@ +--[[ Iterators ]]-- + +-- Reverse an iterator +function reverse(f, s, var) + local results = {}; + + -- First call the normal iterator + while true do + local ret = { f(s, var) }; + var = ret[1]; + if var == nil then break; end + table.insert(results, 1, ret); + end + + -- Then return our reverse one + local i,max = 0, #results; + return function (results) + if i