lua-users home
lua-l archive

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

Peter Hill wrote:
> One thing that seems asymmetrical to me in Lua is that functions may take
> either a fixed or variable number of arguments, while the return values are
> always variable.


I fail to see any problem. If you want your function to return a fixed
of values, then write it so. If you want to return a variable amount of
then the builtin function unpack() of Lua 5 and a table will help you.

For example, in Lua 5 beta you can say:

function varres(nres) 
  t = {}; 
  for n = 1,nres,1 do t[n] = n; end; 
  return unpack(t) 

1       2       3
1       2       3       4       5       6       7

You could even say: return a,b,unpack(optresults) 
To return both a fixed and a variable amount of arguments.

So I see no reason for the change you propose. 

"No one knows true heroes, for they speak not of their greatness." -- 
Daniel Remar.
Björn De Meyer