The state of string interpolation

o o at o.o
Mon Dec 10 01:54:05 UTC 2018

On Thursday, 6 December 2018 at 16:19:12 UTC, Steven 
Schveighoffer wrote:
> On 12/6/18 4:01 AM, Dennis wrote:
>> On Thursday, 6 December 2018 at 02:14:12 UTC, Neia Neutuladh 
>> wrote:
>>> However, that would also force druntime to include formatting 
>>> code that it currently lacks.
>> Jonathan Marler's implementation [1] has a really nice 
>> approach of lowering interpolated strings to tuples. You can 
>> pass it to variadic functions like `writeln` or `text` and 
>> bring your own formatting / memory allocation schemes, giving 
>> better performance and flexibility.
>> [1]
> I supported the concept[1] back when I read it from Dmitry 
> Olshansky[2].
> If I had known about the debate on the PR I would have jumped 
> in. But I don't have much to add. All that really dictates my 
> views is the experience I've had with other languages. However, 
> none of those other languages have the same concept that I know 
> of -- they basically just create a string with toString-ing the 
> interpolations.
> With the concept of lowering to a tuple, I'd love to use such a 
> thing for database queries.
> For instance:
> db.exec("UPDATE Foo SET a = ?, b = ?, c = ?, d = ? WHERE id = 
> ?", aval, bval, cval, dval, id);
> vs.
> db.exec(i"UPDATE Foo SET a = $aval, b = $bval, c = $cval, d = 
> $dval WHERE id = $id");
> The mixin/library solution is much less approachable. What's 
> awesome about the language solution is that it just works 
> without much extra understanding and verbosity, and need for 
> using mixins. mixins are cool, but are best tucked away behind 
> templates or generative functions. They shouldn't seen much in 
> user code. Saying we should use a library solution for this is 
> like saying we can replace foreach usage with a library foreach 
> that lowers to some for-loop and explicit delegates (or maybe a 
> mixin?). Yes, it could be done. No, it shouldn't be done. This 
> is one of those types of syntax sugar that should not be 
> ignored.
> +1000 from me, I'd love to see the PR merged, or the DIP 
> created, whatever needs to happen.
> -Steve
> [1]$2jqm$
> [2]$261n$

Can you add some examples/explanations about the database 
querying to the DIP?

More information about the Digitalmars-d mailing list