Is there a function for this?
    Piotr Mitana 
    the.mail.of.mi2 at gmail.com
       
    Mon Oct  8 09:23:03 UTC 2018
    
    
  
On Saturday, 6 October 2018 at 13:17:22 UTC, bauss wrote:
> Let's say you have a range with struct, but some of the struct 
> are duplicates of each other.
>
> Is there a standard function in Phobos to remove duplicates?
>
> My first thought was "uniq", but it can't really do it like 
> that, but it doesn't work.
>
> See: https://run.dlang.io/is/IcFEtw
>
> Is there another function in Phobos that perhaps would work?
>
> I can of course write my own function, but if there is a 
> standard function that can do it, then I'd rather use that.
Unless you want to implement opCmp() and do the .sort.uniq then, 
you may find this one-liner helpful:
randomAccessRange.fold!((arr, elem) => arr.canFind(elem) ? arr : 
(arr ~= elem))((ElementType!(typeof(randomAccessRange))[]).init)
Applied in your example: https://run.dlang.io/is/3KjRvY
But yes, it is de facto a custom function. I don't think that 
there is a function in Phobos that will perfectly deduplicate 
your range without having it sorted before.
    
    
More information about the Digitalmars-d-learn
mailing list