On Monday, 24 March 2014 at 12:10:40 UTC, Marc Schütz wrote:
On Monday, 24 March 2014 at 01:28:02 UTC, Kenji Hara wrote:
I'm partially against to it.
1. I think removing comma operator does not have useful effect
for tuple
syntax discussion. For example:
1a. If you want to use parenthesis syntax (...) for tuple,
we should
resolve one-element tuple ambiguity first.
(exp) // one-element tuple, or just an expression ?
And, removing comma operator does not resolve this issue.
I believe this is a non-issue. From a language-users POV, there
should be no difference between a one-element tuple and an
expression, thus there's no need to distinguish the two. (The
actual implementation in the compiler may of course treat them
differently.)
On second thought, this would probably lead to problems in
generic code, if we want to iterate over a tuple whose length we
do not know, and which happens to have one element only. So there
definitely needs to be a distinction between tuples and
non-tuples.
But as this is about syntax only, the question is: Do we even
need a dedicated syntax for one-element (and zero-element)
tuples? When those are needed, they can easily be created using
std.typecons.tuple(). The syntactic sugar is only really useful
when we have multiple values, be it for returning or for
assignment.