Is there a function for this?

Nicholas Wilson iamthewilsonator at hotmail.com
Sat Oct 6 13:38:34 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.

range
     .array.sort // make equal elements be adjacent
     .chunks!"a==b" // get a range over those equal elements
     .map(e => e.front); // get the first one

should work, possibly not the most efficient way to do it though.

I don't know off the top of mu head if there are any to preserve 
the order or the original range.


More information about the Digitalmars-d-learn mailing list