Discussion Thread: DIP 1036--Formatted String Tuple Literals--Community Review Round 1

Paul Backus snarwin at gmail.com
Fri Sep 11 20:46:05 UTC 2020

On Friday, 11 September 2020 at 19:59:35 UTC, Adam D. Ruppe wrote:
> On Friday, 11 September 2020 at 19:31:33 UTC, Paul Backus wrote:
>> The solution is to use the type system.
> This is exactly what the DIP does!
> Something serious must have gotten lost between my brain and 
> the text.

I guess you didn't have time to check out the video. What I mean 
is, the solution is to change the signature of "createWindow":

     alias Width = Typedef!(int, int.init, "Width");
     alias Height = Typedef!(int, int.init, "Height");

     void createWindow(string title, Width width, Height height);

This solves the issue of accidentally passing the wrong thing 
with i"Window $id", and also prevents non-interpolation-related 
accidental usage, like mixing up the width and height.

> This DIP builds on D's unique strengths, enhancing existing 
> opportunities. None of the others come close, they're just 
> syntax sugar.

I agree with this 100%, except I think it's a point against DIP 
1036 and in favor of the other proposals. :)

We already have ways to put stuff in the middle of strings. The 
reason we want string interpolation is to make the syntax for it 
less ugly. So, it *should* be "just syntax sugar." Anything 
beyond that is bloat.

More information about the Digitalmars-d mailing list