A nice way to step into 2012
Alex Rønne Petersen
xtzgzorex at gmail.com
Tue Dec 27 06:27:42 PST 2011
On 27-12-2011 15:19, Alex Rønne Petersen wrote:
> On 27-12-2011 05:25, Andrei Alexandrescu wrote:
>> https://github.com/D-Programming-Language/dmd/commit/675898721c04d0bf155a85abf986eae99c37c0dc
>>
>>
>>
>> Andrei
>
> Awesome!
>
> Now the only gripe I have left is type inference for lambdas passed as
> regular function parameters. Is this something we will see anytime soon?
>
> - Alex
Just to make it clear what I want to be able to do (simple example with
arrays):
T[] filter(T)(T[] items, scope bool delegate(T) predicate)
{
T[] newItems;
foreach (item; items)
if (predicate(item))
newItems ~= item;
return newItems;
}
auto ints = filter([0, 1, 2, 3, 4, 5], x => x % 2 != 0);
Or perhaps even better, when we get fully working UFCS:
auto ints = [0, 1, 2, 3, 4, 5].filter(x => x % 2 != 0);
DMD should be able to infer the parameter type(s) of the delegate I'm
passing, since that's clear from the array being passed. (I would
recommend looking at how C#'s type inference rules work; they're quite
sophisticated for an imperative language.)
- Alex
More information about the Digitalmars-d
mailing list