util.array: Add array.collect() to collect results from iterators into an array,...
authorMatthew Wild <mwild1@gmail.com>
Wed, 22 Apr 2009 16:46:17 +0000 (17:46 +0100)
committerMatthew Wild <mwild1@gmail.com>
Wed, 22 Apr 2009 16:46:17 +0000 (17:46 +0100)
util/array.lua

index 9e99a3ec2a1238550b0aa48d5b2bad792ef2e313..072b24a75ccea9d93a1b1517ecda414a77f9ee56 100644 (file)
@@ -52,4 +52,17 @@ function array:reverse()
        end
 end
 
-_G.array = array 
+function array.collect(f, s, var)
+       local t, var = {};
+       while true do
+               var = f(s, var);
+               if var == nil then break; end
+               table.insert(t, var);
+       end
+       return setmetatable(t, array_mt);
+end
+
+_G.array = array;
+module("array");
+
+return array;