Re: How to use Rules on Sequences?
- To: mathgroup at smc.vnet.net
- Subject: [mg29510] Re: How to use Rules on Sequences?
- From: Detlef Mueller <dmueller at mathematik.uni-kassel.de>
- Date: Sat, 23 Jun 2001 01:46:52 -0400 (EDT)
- Organization: University of Kassel - Germany
- References: <9gs2m5$k3u$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
BobHanlon at aol.com wrote: > ... Thanks to you, Jens, Orestis and the others! > > 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}} > Mh, an answer, making one regret to have asked :) , quiet simple and natural. > The inverse is then > > L == ((Last /@ > Split[Sort[Append[%, {a, 0}]], #2[[1]]===#1[[1]]&]) /. {a, > m_} :> {a, m+1}) > This one is more tricky. I should translate it for I want to write my text readable for folks with a native Language different from Mathematica :) {a, 0} is appended, Sort moves it to the right place (great, that Sort works this way). Then the last Elements of the "Runs" are extractet via Mapping, using that{a, 0} is less than any apearing {a,i}. Yes, i think, i understood. I should mention, that the List in Question are normaly very short, say two up to five elements (then I am kind of mind-blocked, because i.e. Sorting looks like overkill to me). > 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] > This works fine for Emil :) I hat an Idea to have a rule not using any Context-Function. But I see, this simply cannot happen in Mathematica. So my Problem that x_, y_?Positive, x_ :> SUBST isn't syntactically correct, has no Importance, {x__[y___, a_, z___] ->x[y,SUBST,z]} suffices, because "everything is a Function". Thanks, again Detlef Mueller