# HG changeset patch # User Matthew Wild # Date 1344422971 -3600 # Node ID cbc7eb5cfa8c1f2159cf340abdd76f98895a7b4b # Parent 82b9fe0c79c540620b7227ccc8399a82e5a9b592 util.array: Accept an iterator to the array constructor diff -r 82b9fe0c79c5 -r cbc7eb5cfa8c util/array.lua --- a/util/array.lua Tue Aug 07 17:01:07 2012 +0200 +++ b/util/array.lua Wed Aug 08 11:49:31 2012 +0100 @@ -19,7 +19,10 @@ local array_methods = {}; local array_mt = { __index = array_methods, __tostring = function (array) return array:concat(", "); end }; -local function new_array(_, t) +local function new_array(self, t, _s, _var) + if type(t) == "function" then -- Assume iterator + t = self.collect(t, _s, _var); + end return setmetatable(t or {}, array_mt); end