Re: rule based program for "Deleting repeated members of a list."

• To: mathgroup at smc.vnet.net
• Subject: [mg82035] Re: rule based program for "Deleting repeated members of a list."
• From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>
• Date: Wed, 10 Oct 2007 04:23:58 -0400 (EDT)
• Organization: The Open University, Milton Keynes, UK
• References: <fe7j44\$qga\$1@smc.vnet.net> <fea9ju\$k4g\$1@smc.vnet.net>

```mumat wrote:

> On Oct 6, 5:05 am, mumat <csar... at gmail.com> wrote:
>> Hi,
>>
>> I have a list s={a,b,c,c,d,e,e,f,g,g,g,h,a,b};
>>
>> I need to write a program so that it reads the list and ignors
>> repeated elements; so it outputs the following:
>>
>> RepeatRemover[s]={a,b,c,d,e,f,g,h,a,b};
>>
>> I am looking for a rule-based program to do this!
>>
>> Any help would be greatly appreciated.
>>
>> C.S.
>
> Thanks so much.
>
> Unrepeat[lis_List]:=lis//.{a___,b_,d_,e___}:>{a,b,e}/;b==d;

I was wandering why you used b and d as pattern name with a condition on
them rather than b and c, but I realized that when using c as pattern
name in place of d the replacement fails.

In[1]:= s = {a, b, c, c, d, e, e, f, g, g, g, h, a, b};
s //. {a___, b_, c_, d___} :> {a, b, c} /; b == c
s //. {a___, b_, d_, e___} :> {a, b, e} /; b == d

Out[2]= {a, b, c, c}

Out[3]= {a, b, c, d, e, f, g, h, a, b}

Does anyone know why?

Regards,
--
Jean-Marc

```

• Prev by Date: Re: Underline string in colour
• Next by Date: Re: Import of EPS files
• Previous by thread: Re: rule based program for "Deleting repeated members of a list."
• Next by thread: Re: rule based program for "Deleting repeated members of a list."