Interpolated strings

Jonas Drewsen via Digitalmars-d digitalmars-d at puremagic.com
Sat Apr 15 13:45:23 PDT 2017


On Saturday, 15 April 2017 at 20:20:49 UTC, Stanislav Blinov 
wrote:
> On Saturday, 15 April 2017 at 20:12:41 UTC, cym13 wrote:
>> On Saturday, 15 April 2017 at 20:04:13 UTC, Jonas Drewsen 
>> wrote:
>
>> This has been proposed before, and I still don't see the added 
>> value compared to:
>>
>>     auto a=7;
>>     writeln(a, " times 3 is ", a*3);
>>
>> besides adding compiler complexity, language complexity and 
>> parsing complexity which leaves room for more bugs to be 
>> invented. I'm a bit more harsh than I could be, but if this 
>> simple question has no clear answer I don't see why it sould 
>> make it into the language.
>
> Try a different context:
>
> auto a = 7;
>
> import std.format;
> auto str = format("%s times 3 is %s", a, a*3);
>
> //or
>
> import std.conv;
> auto str = text(a, " times 3 is ", a*3);
>
> //or
>
> auto str = $"{a} times 3 is {a*3}";

Yes this is a very basic lowering. The value comes from the fact 
(assumption?) that this pattern of constructing a string from a 
mix of strings and expressions is very common. The value of a 
feature could be described as

usage * productivity_improvement = feature_value

So while the productivity_improvement may be modest the usage is 
high enough to give a high feature_value and justify the 
addition. A sign of this is the number of other popular languages 
supporting this feature (not arguing for just copy other 
languages but it is still an indicator). Unfortunately I have no 
hard data for these numbers.

















More information about the Digitalmars-d mailing list