String lambdas

Andrei Alexandrescu via Digitalmars-d digitalmars-d at puremagic.com
Wed Apr 27 10:04:47 PDT 2016


On 04/27/2016 11:44 AM, Steven Schveighoffer wrote:
> On 4/27/16 8:31 AM, Andrei Alexandrescu wrote:
>> On 04/26/2016 03:45 PM, Jack Stouffer wrote:
>>> I think that the drawback you mentioned does not outweigh the benefits
>>> gained from using actual lambdas.
>>
>> Actually it turns out to be a major usability issue. -- Andrei
>
> Yes, consider that RedBlackTree!(int, (a, b) => a > b) is going to be a
> different type every time you use it, even if they are 1 line apart!
>
> There are actually 2 things the string lambdas have going for them: 1)
> common instantiation for every usage, and 2) avoiding parentheses with
> instantiation (impossible to do with a short lambda syntax).
>
> I'd still vote for them to go, but we MUST fix the issue with common
> instantiation first.
>
> There has been some discussion in general of using hashing to decrease
> the symbol size for templates, and some discussion about allowing the
> compiler to merge identical binary functions to reduce the size of the
> binaries. Both of those could play in nicely here.

Yes, you get it exactly right. I think a DIP would be warranted here to 
clarify how lambda equivalence is computed. Could you please draft one? 
-- Andrei




More information about the Digitalmars-d mailing list