Finding unique elements of a list
Wed Dec 1 18:29:56 CET 2004
On Wed, Dec 01, 2004 at 10:47:38AM -0600, James Hague wrote:
> Is there a standard Erlang library function or idiom for removing duplicate
> items from an unsorted list? Ideally the elements in the final list should
> be in the order they were passed in, except without duplicates:
> [3,5,2,2,3] -> [3,5,2].
> If order doesn't matter there are some easy options:
> 1. lists:usort(L)
> 2. gb_sets:to_list(gb_sets:from_list(L))
> If order does matter,
and you do not care for performance, then a quick solution would be
[H|unique(lists:filter(fun(X) -> X =/= H
But, yes, this is more reasonable in Haskell and stolen from its
> then the only thing I've come up with is to build an ets table or
> gb_set iteratively, adding each element not previously in the table
> or set to a list of unique items.
Definitely the better option.
Sorry, that probably was not really helpful...
Carsten Schultz (2:38, 33:47), FB Mathematik, FU Berlin
PGP/GPG key on the pgp.net key servers,
fingerprint on my home page.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Size: 189 bytes
Desc: not available
More information about the erlang-questions