1 local array = {}; |
1 local array = {}; |
2 |
2 |
3 local array_mt = { __index = array, __tostring = function (array) return array:concat(", "); end }; |
3 local array_mt = { __index = array, __tostring = function (array) return array:concat(", "); end }; |
4 local function new_array(_, t) |
4 local function new_array(_, t) |
5 return setmetatable(t or {}, array_mt); |
5 return setmetatable(t or {}, array_mt); |
|
6 end |
|
7 |
|
8 function array_mt.__add(a1, a2) |
|
9 local res = new_array(); |
|
10 return res:append(a1):append(a2); |
6 end |
11 end |
7 |
12 |
8 setmetatable(array, { __call = new_array }); |
13 setmetatable(array, { __call = new_array }); |
9 |
14 |
10 function array:map(func, t2) |
15 function array:map(func, t2) |