のしいか (noshiika) wrote:
Bill Baxter さんは書きました:
Did go do away with the comma sequencing operator?
I can't find it.  That's the first thing D needs to do.

Otherwise
   a,b = function()
is difficult to make work.

How about redefining the comma operator as a "tuple constructor"
with its precedence unchanged?

In so doing, we may write:

  (int, int) func(int x, int y) { return y, x; }
    // tuple-to-tuple function
    // (int, int) is a type tuple, "int x, int y" a named type tuple,
    // and "y, x" an expression tuple.

  (int, int) t = func(0, 1);
    // t is a type-tuple-typed variable.

  int a, b;
  (a, b) = func(t);
    // (a, b) is an lvalue tuple.

Very yes! Of course I'd prefer to be able to write "a, b = func(t);" in expressions.

Too bad Andrei and Walter don't seem to think these are issues. Don't know how they can live with that Tuple!(...) crap.

and f(0, 1) beautifully has the same semantics with f((0, 1)) by the tuple flattening.

Tuple flattening is bad and should be removed as quickly as possible from D.

Reply via email to