lua-users home
lua-l archive

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

On Oct 13, 2009, at 3:35 PM, TNHarris wrote:

Which could be optimized to use local variables only. However, that does
demonstrate one thing about Lua that I didn't expect. This...

   return something, F()

... isn't a tail-call. I thought it would be, but the comma operator is
enough to prevent the optimization. I think it would be a worthwhile
change to the VM to allow a tail-call in this case.

This can't be a tail call because it has to process the results of F() to combine them with something before returning further up the chain.

So, in this case, you might actually want to fear recursion.

Basically, you want to write map and filter in C because it will be much easier to work with varargs efficiently in C.