Template currying

Yuxuan Shui via Digitalmars-d digitalmars-d at puremagic.com
Thu May 5 23:30:27 PDT 2016


On Friday, 6 May 2016 at 06:26:14 UTC, Yuxuan Shui wrote:
> On Friday, 6 May 2016 at 06:18:22 UTC, Yuxuan Shui wrote:
>> On Thursday, 5 May 2016 at 23:33:07 UTC, Yuxuan Shui wrote:
>>> On Thursday, 5 May 2016 at 23:19:59 UTC, Yuxuan Shui wrote:
>>>> [...]
>>>
>>> See this example:
>>>
>>>     int a(alias f)(){return f(3);}
>>>     int b(int z, T)(T c){return c;}
>>>     void main() {
>>>       a!(b!1)();
>>>     }
>>>
>>> It'd really nice if this just works, or if there's something 
>>> called Curry which I can use like this:
>>>
>>>     a!(Curry!(b, 1))
>>
>> Wait, I just realized that this example works in 2.071, but 
>> not in 2.068.2. What has changed?
>
> Apply{Left, Right} is add in 2.071 as well, and I didn't see 
> them mentioned in the ChangLog...

Oh, sorry, that doesn't work. My mistake.

And ApplyLeft doesn't work for that example either (I thought it 
would). Looks like it's a bit more difficult to implement 
Curry!() than I thought.



More information about the Digitalmars-d mailing list