#!/usr/bin/env lua

–table.reduce = function (list, fn)
–有趣的地方是fn参数也可以是一个函数
–这个函数是将列表值来相加得到和
abc = 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

print(abc(
–print(table.reduce(
{100, 210, 300, 200, 120, 133, 140, 166, 199},
–这里将abc函数中的fn参数作为一个求和的函数来处理
function (a, b)
return a + b
end
))