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.

/snip

I fail to see any problem. If you want your function to return a fixed
number 
of values, then write it so. If you want to return a variable amount of
results, 
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) 
 end

print(varres(1))
1
print(varres(3))
1       2       3
print(varres(7))
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 
bjorn.demeyer@pandora.be