Module:TableTools: Difference between revisions

From the Croc Wiki, the Croc encyclopedia
Jump to navigationJump to search
Content added Content deleted
(check type of prefix and suffix)
(generate an error message when union and intersection functions are called with no arguments)
Line 49: Line 49:
--]]
--]]
function p.union(...)
function p.union(...)
local lim = select('#', ...)
if lim == 0 then
error("no arguments passed to 'union'", 2)
end
local ret, trackArrays = {}, {}
local ret, trackArrays = {}, {}
for i = 1, select('#', ...) do
for i = 1, lim do
local t = select(i, ...)
local t = select(i, ...)
checkType('union', i, t, 'table')
checkType('union', i, t, 'table')
Line 91: Line 95:
--]]
--]]
function p.valueUnion(...)
function p.valueUnion(...)
local lim = select('#', ...)
if lim == 0 then
error("no arguments passed to 'valueUnion'", 2)
end
local vals, ret = {}, {}
local vals, ret = {}, {}
for i = 1, select('#', ...) do
for i = 1, lim do
local t = select(i, ...)
local t = select(i, ...)
checkType('valueUnion', i, t, 'table')
checkType('valueUnion', i, t, 'table')
Line 122: Line 130:
--]]
--]]
function p.intersection(...)
function p.intersection(...)
local lim = select('#', ...)
if lim == 0 then
error("no arguments passed to 'intersection'", 2)
end
local ret, track, pairCounts = {}, {}, {}
local ret, track, pairCounts = {}, {}, {}
local lim = select('#', ...)
for i = 1, lim do
for i = 1, lim do
local t = select(i, ...)
local t = select(i, ...)
Line 155: Line 166:
--]]
--]]
function p.valueIntersection(...)
function p.valueIntersection(...)
local lim = select('#', ...)
if lim == 0 then
error("no arguments passed to 'valueIntersection'", 2)
end
local vals, ret = {}, {}
local vals, ret = {}, {}
local lim = select('#', ...)
for i = 1, lim do
for i = 1, lim do
local t = select(i, ...)
local t = select(i, ...)