[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: just a little question about the lua way :)
- From: Asko Kauppi <askok@...>
- Date: Wed, 14 Dec 2005 18:56:48 +0200
What really matters to me, is clearness, maintainability and generic
"readability" of any code I write.
Sometimes, "making it Lua" may mean that you're actually making it
harder for those PHP/C/etc. people to understand.
So, I'd be happy with:
local result = 0
for _,value in {1,2,3,4,5,6,7,8} do
result = result + value
end
print(result)
Then again... :)
local function sumofn( a, ... )
if not a then
return 0
else
return a + sumofn(...)
end
end
print( sumofn( unpack{1,2,3,4,5,6,7,8} ) )
Note that the ... notation requires Lua 5.1, and the use of if/else
to make sure the recursion happens with proper tail call (= not
causing stack heating). Hmm.. the + might in fact cause stack heat,
would someone do the above with proper tail call then? :)
-asko
Walter Cruz kirjoitti 14.12.2005 kello 16.28:
Hi all.
I have a little doubt. I have a lua table with some values and I
neet the sum of them.
Here's is the code snippet:
_________
c = 0
function sum(v)
c = c+v
print(c)
end
values ={1,2,3,4,5,6,7,8}
result = 0
for _,value in values do
result = result + value
end
print(result)
table.foreach(values,sum)
_________
The code between result = 0 and print(result) works, but i don't
think that this is the 'lua way' of doing the things. Except by the
lua way of make the for loop, this could be C, PHP or javascript.
The function sum is my attempt to make it more 'lua'. It works, but
all the values are printed and I have the c variable outside of the
scope of the function (global). As far I know, I can do it with a
closure no ?
I just wanna make my lua code more lua :)
Thanks on advance.
[]'s
- Walter