lua-users home
lua-l archive

Re: just a little question about the lua way :)

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


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

AltStyle によって変換されたページ (->オリジナル) /