Re: Keeping order with Union
- To: mathgroup at smc.vnet.net
- Subject: [mg32605] Re: [mg32590] Keeping order with Union
- From: BobHanlon at aol.com
- Date: Thu, 31 Jan 2002 01:45:32 -0500 (EST)
- Sender: owner-wri-mathgroup at wolfram.com
In a message dated 1/30/02 4:26:36 AM, dsnead6 at charter.net writes:
>I'd like a function that throws out duplicate entries in a list and keeps
>the
>original list order. (when it sees 2 equal entries it throws out the one
>that is later in the list). I'd use Union, but it sometimes changes the
>order of the elements in the list. What's the tersest way to do this?
>
elimDupes[x_List] :=
(x//.{s___,e_,i___,e_,f___} :>{s,e,i,f});
origList = {b,b,c,a,c,a,b,d};
Union[origList]
{a, b, c, d}
elimDupes[origList]
{b, c, a, d}
Bob Hanlon
Chantilly, VA USA