sort!("...") with template function?

Simen Kjærås simen.kjaras at gmail.com
Tue Feb 26 10:06:04 UTC 2019


On Monday, 25 February 2019 at 15:26:33 UTC, Jonathan M Davis 
wrote:
> On Monday, February 25, 2019 5:47:47 AM MST Simen Kjærås via
>> String functions can't access the local scope, and thus can't 
>> see Dummy. Using lambdas works. (string functions were 
>> basically a workaround for no decent lambda syntax back in the 
>> time when dinosaurs roamed the earth)
>
> They're actually still useful in cases where you need to 
> compare lambdas (since you can't compare actual lambdas, but 
> you can compare strings), and in some cases, using a string 
> lambda with a function that accepts it is less verbose than 
> using a regular lambda, but in general, folks do tend to use 
> regular lambdas now that we have the more concise lambda syntax 
> - especially since string lambdas do have some annoying 
> limitations like this.

Lambdas can be compared, though:

     static assert(__traits(isSame, a => a, i => i));
     alias fn1 = a => a * 2;
     alias fn2 = b => b * 2;
     static assert(__traits(isSame, fn1, fn2));

There are limits, as specified on 
https://dlang.org/spec/traits.html#isSame

--
   Simen


More information about the Digitalmars-d-learn mailing list