On 1/24/15 4:13 AM, zeljkog wrote:
On 24.01.15 12:50, Peter Alexander wrote:
auto f = unique();
[1, 5, 5, 2, 1, 5, 6, 6].filter!(f).writeln;  // [1, 5, 2, 6]

Filter needs an alias, and you cannot alias an R-value (it has no symbol).

Yes, I see :)

But I think this should be supported by std.algorithm:

import std.stdio, std.algorithm;

struct Uniq{
     bool[int] c;
     bool opCall(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!Uniq.writeln;
}

I can't make sense of this - where is Uniq supposed to be instantiated? -- Andrei

Reply via email to