Я не согласен, было бы излишним иметь что-то такое примитивное и специфичное, как table.sum
в стандартной библиотеке.
Было бы более полезно реализовать table.reduce
в соответствии с:
table.reduce = function (list, fn)
local acc
for k, v in ipairs(list) do
if 1 == k then
acc = v
else
acc = fn(acc, v)
end
end
return acc
end
И используйте его с простой лямбдой:
table.reduce(
{1, 2, 3},
function (a, b)
return a + b
end
)
В примере реализации reduce
отсутствует проверка типов, но вы должны понять.