Re: Re: Unsorted Union

*To*: mathgroup at smc.vnet.net*Subject*: [mg61625] Re: [mg61564] Re: Unsorted Union*From*: ggroup at sarj.ca*Date*: Mon, 24 Oct 2005 01:44:09 -0400 (EDT)*References*: <dj4p6t$gpt$1@smc.vnet.net><dj721s$cpb$1@smc.vnet.net> <200510220724.DAA12393@smc.vnet.net>*Reply-to*: ggroup at sarj.ca*Sender*: owner-wri-mathgroup at wolfram.com

On Saturday, October 22, 2005 at 03:24 GMT -0400, Bill White wrote: > Other interesting things can be done with this memoizing scheme. For > example, it can be used to collect the duplicate elements in a list: Very nice example. However, I think you need a slight tweak to the definition if you want to remove *all* occurrences of duplicated items. This definition removes only the first occurrence of any given entry from a list. Therefore, if your list has some element listed 3 or more times, the output list would still have multiple occurrences of that element. > In[11]:= > DuplicateElements[list_List]:= > Module[{f,dups={}}, > f[n_]:=(f[n]:=AppendTo[dups,n]); > f/@list; > dups]; One way to avoid duplicated entries in the resulting list could be: DuplicateElements[list_List] := Module[{f, dups = {}}, f[n_]:=(f[n]:=(AppendTo[dups, n]; f[n] = Sequence[])); f /@ list; dups];

**References**:**Re: Unsorted Union***From:*"Bill White" <minutiae@gmail.com>