sortUniq

zeljkog via Digitalmars-d digitalmars-d at puremagic.com
Fri Jan 23 10:22:04 PST 2015


On 23.01.15 19:13, Andrei Alexandrescu wrote:
> On 1/23/15 10:05 AM, zeljkog wrote:
>> On 23.01.15 18:48, H. S. Teoh via Digitalmars-d wrote:
>>>
>>> I think what he's trying to do is to call a function that returns a
>>> delegate, and use that delegate to instantiate the filter template.
>>> AFAIK I've never seen code like this before, and it looks like the
>>> compiler isn't prepared to handle this.
>>>
>>
>> Yes, I tried to use filter for unique, need closure.
>> I think there are many applications for this pattern.
>
> Please post a complete snippet then. Thanks! -- Andrei
>

import std.stdio, std.algorithm;

auto unique(){
     bool[int] c;
     return (int a){
         if (a in c)
             return false;
         else{
             c[a] = true;
             return true;
         }
     };
}

void main()
{
     [1, 5, 5, 2, 1, 5, 6, 6].filter!(unique()).writeln;
}




More information about the Digitalmars-d mailing list