Tuple DIP

Timon Gehr timon.gehr at gmx.ch
Fri Jan 12 22:44:48 UTC 2018


As promised [1], I have started setting up a DIP to improve tuple 
ergonomics in D:

https://github.com/tgehr/DIPs/blob/tuple-syntax/DIPs/DIP1xxx-tg.md


This DIP aims to make code like the following valid D:

---
auto (a, b) = (1, 2);
(int a, int b) = (1, 2);
---

---
foreach((sum, diff); [(1, 2), (4, 3)].map!((a, b) => (a + b, a - b)))
{
     writeln(sum, " ", diff);
}
/+ prints:
3 -1
7 1
+/
---

Before going ahead with it, I'd like some preliminary community input:

- I'm not yet completely satisfied with the DIP.
   (See section "Limitations".)
   Please let me know suggestions or further concerns you might have.


- There are good example use cases missing. While I'm confident I could
   invent a few of them given a little time, I thought maybe I can
   expedite the process and make the point more convincingly by asking
   for use cases you encountered in your own code. The DIP already
   contains an example due to bearophile.


[1] https://forum.dlang.org/post/or625h$2hns$1@digitalmars.com


More information about the Digitalmars-d mailing list