MathGroup Archive 2001

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: How to use Rules on Sequences?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg29472] Re: [mg29452] How to use Rules on Sequences?
  • From: BobHanlon at aol.com
  • Date: Thu, 21 Jun 2001 01:56:48 -0400 (EDT)
  • Sender: owner-wri-mathgroup at wolfram.com

In a message dated 2001/6/20 5:06:38 AM, dmueller at mathematik.uni-kassel.de 
writes:

>I am faced to the following Problem:
>
>given a List of Pairs of the Form
>
>L = {{a1,m1},{a2,m2}, ... ,{ai,mi}}
>
>and a Number a, I want to replace the Pair
>{a, mj}, if it appears in the List by
>{a, mj-1}.
>
>This Job is done by
>L /. {{a,_m}->{a,m-1}}.
>
>Now I want to remove an Item of the Form
>{a,0} entirely from The List.
>
>Can this be done by applying rules (without
>leaving Null-Entrys), or is "Select" the only
>Way?
>(By the way: L is sorted with respect to the first Elements
>of the Sublists, this first elements are unic identifiers.
>Another Question is to replace an {a,_m} in L by {a,m+1},
>if it exists or else insert {a,1} in the propper
>Place - the inverse Operation of the above desribed
>one. Suerly not difficult to realize - but what might
>be the most efficient Method?)
>
>More general, I wonder, how to replace
>a Pattern in a Sequence - for example to change
>every occurence of "x_, y_?positive, x_" in a Sequence
>by "x,0,x".
>
>Say
>
>Emil[1,2,3,2,0,a,b,c]/.R ---> (Replacing ... 2,3,2 ... )
>Emil[1,2,0,2,0,a,b,c]/.R ---> (Replacing ... 0,2,0 ... )
>Emil[1,2,0,0,0,a,b,c]/.R      (No more changes).
>
>I Fail to write down a syntactically correct rule R to
>do this Job.
>

a=2;

L = {{1,m1},{2,1},{3,m3}, {4,m4}};

% /. {a, m_} :> {a, m-1} /. {x___, {a, 0}, y___} :> {x, y}

{{1, m1}, {3, m3}, {4, m4}}

The inverse is then

L == ((Last /@ 
          Split[Sort[Append[%, {a, 0}]], #2[[1]]===#1[[1]]&]) /. {a, 
          m_} :> {a, m+1})

True

Emil[1,2,3,2,0,a,b,c] //. 
  Emil[s___, x_, y_?Positive, x_, e___] :> Emil[s, x, 0, x, e]

Emil[1, 2, 0, 0, 0, a, b, c]


Bob Hanlon
Chantilly, VA  USA


  • Prev by Date: Re: How to use Rules on Sequences?
  • Next by Date: Re: How to use Rules on Sequences?
  • Previous by thread: Re: How to use Rules on Sequences?
  • Next by thread: Re: How to use Rules on Sequences?