DIP 1027---String Interpolation---Community Review Round 1

aliak something at something.com
Thu Dec 12 00:58:09 UTC 2019


On Wednesday, 11 December 2019 at 09:52:21 UTC, Mike Parker wrote:
> This is the feedback thread for the first round of Community 
> Review for DIP 1027, "String Interpolation":
>
> https://github.com/dlang/DIPs/blob/148001a963f5d6e090bb6beef5caf9854372d0bc/DIPs/DIP1027.md
>
> All review-related feedback on and discussion of the DIP should 
> occur in this thread. The review period will end at 11:59 PM ET 
> on December 25, or when I make a post declaring it complete.
>
> At the end of Round 1, if further review is deemed necessary, 
> the DIP will be scheduled for another round of Community 
> Review. Otherwise, it will be queued for the Final Review and 
> Formal Assessment.
>
> Anyone intending to post feedback in this thread is expected to 
> be familiar with the reviewer guidelines:
>
> https://github.com/dlang/DIPs/blob/master/docs/guidelines-reviewers.md
>
> *Please stay on topic!*
>
> Thanks in advance to all who participate.

1. The DIP fails to mention why this has been chosen as better 
over the other alternatives out there.

2. Why %?
   a) it clashes with format specifiers, sounds like a bad idea.
   b) it's more common in text than other alternatives (e.g. $) 
which means it increases making the user escape text.

3. How does this work with normal strings? And token strings? One 
use-case I've been looking forward to is generative programming 
with token strings and interpolated strings. This doesn't seem to 
help there? If not, why a half solution? If it does, then maybe 
an example?

4. How is this handled?

auto d = 7;
writefln(i"I ate %apples and %{d}bananas totalling %(apples + 
bananas) fruit.");

// bug? silent failure? compiler error? Does it do what the user 
expects?

5. I believe you can do everything this DIP does with a better 
syntax -> "$itemPrice%.2f" where $ is the identifier and after 
the % is the formatting. And you don't have to deal with that * 
runtime error

6. What's the rationale behind allowing anything other than %s? 
The type of variable can be inferred?

Cheers,
- Ali





More information about the Digitalmars-d mailing list