[rust-dev] bikeshed on closure syntax
qwertie256 at gmail.com
Tue Apr 17 22:03:20 PDT 2012
> > This requires arbitrary lookahead to disambiguate from tuples.
> This bit in particular. Really really don't want to cross the bridge to
> arbitrary lookahead in the grammar.
Pardon me, but I'm not convinced that there is a problem in lambdas
like (x, y) -> (x + y). By analogy, you can realize that ((x * y) + z, q)
is a tuple instead of a simple parenthesized expression when you reach the
comma -- you don't need to look ahead for a comma in advance. So why not
treat (x, y) as a tuple until you reach the "->" and then reinterpret the
contents at that point? This works as long as the syntax of a lambda
argument list is a subset of the tuple syntax, anyway. If that's not the
case, parsing gets messier, though I'm sure arbitrary lookahead is not be
the only possible implementation.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Rust-dev