lua-users home
lua-l archive

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


On 9-Jan-07, at 11:21 AM, Thomas Lavergne wrote:

Is there any reason for the __len metamethod to reduce only allow returning a single value ?
Currently, all Lua operators return single values; only function calls 
and the ... syntax can return multiple values. Of course, the 
metamethod can return as many values as it likes, but it will get 
corrected to a single value inside the VM opcode.
I'm sure that it would be possible to change that, but it would require 
a redesign of the VM, and would undoubtedly slow down VM execution. 
It's probably better, in the particular case of __len, to define an 
object method, or a primitive function, possibly something along these 
lines:
function len(x) return getmetatable(x).__len(x) end