[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: select("#", ...) idiom
- From: Mark Hamburg <mhamburg@...>
- Date: Wed, 14 Sep 2005 13:29:21 -0700
Yes, but one could get the length of the first item by writing #(...).
It seems like #... would be fairly useful assuming the implementation has
ready access to the length of ...
That being said, I also understand that this would further complicate the
grammar since ... wouldn't always be an expression. It would essentially
require the introduction of a non-terminal for
expression-other-than-dotdotdot.
Mark
on 9/14/05 1:09 PM, Roberto Ierusalimschy at roberto@inf.puc-rio.br wrote:
>> Perhaps I missed this? What is its meaning?
>
> ... is an expression. #exp returns the length of the result of exp.
> So, #... is the length of the first argument of a vararg function.
> Try this:
>
> function f (...) return #... end
> print(f("hi", 4, 5))
>
>
> Similarly, <<for i, v in ...>> also has a meaning. See next example:
>
> function f (...) for i,v in ... do print(i,v) end end
> f(pairs{2,4,5})
>
> -- Roberto