  lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]

• Subject: Re: just a little question about the lua way :)
• From: Robert Raschke <rrlua@...>
• Date: Wed, 14 Dec 2005 15:28:28 +0000

```Hi Walter,

> I have a little doubt. I have a lua table with some values and I neet the
> sum of them.

This probably ain't really the "lua way", 'tis definitely the
functional one tho' (deftly ignoring the loop in the code):

function foldl(f, z, t)
local fun = function (tt)
local r = z
for _, v in ipairs(tt) do r = f(r, v) end
return r
end
if t then
return fun(t)
else
return fun
end
end

sum_it = foldl(function (a, b) return a+b end, 0)

print(sum_it({1,2,3,4,5}))

function sum (a, b) return a+b end
print(foldl(sum, 0, {1,2,3,4,5}))

So, foldl() kinda behaves a little teensy bit curried.  You can create
a function that traverses a table by providing the "folding function"
and its neutral value, or you can get the result of the application by
providing the optional third parameter.

Robby

```