On 14/12/2012 21:09, Rapin Patrick wrote:
In LuaDura, I wrote a function named `array_concat`.
An important difference compared to other implementations so far is that it
operates _recursively_.
Its goal is to "flatten" a hierarchy of arrays into a single array (or
sequence).
function dura.array_concat(...)
local res, arg = {}, {...}
local function insert(val)
if type(val) == 'table' and (#val > 0 or next(val) == nil) then
for _,j in ipairs(val) do
insert(j)
end
else
table.insert(res, val)
end
end
insert(arg)
return res
end
Very useful (also in debug, for quick checks at complex data), always have it in
my toolbox as well. But it's usually called 'flatten', precisely, 'concat' may
be misleading here.
Denis