Re: Confused about replacement rules

*To*: mathgroup at smc.vnet.net*Subject*: [mg7183] Re: Confused about replacement rules*From*: "Xah Lee" <xah at best.com>*Date*: Wed, 14 May 1997 01:11:17 -0400 (EDT)*Sender*: owner-wri-mathgroup at wolfram.com

In article <5l8tjg$cs7$1 at dragonfly.wolfram.com>, bleile at fli.sh.bosch.de (Thomas Bleile) wrote: > In[24]:= rules = {x_ ^ 2->a,expr_:>Expand[expr]} > 2 > Out[24]= {(x_) -> a, expr_ :> Expand[expr]} > > Now I apply these rules on a simple expression: > > In[25]:= x (x+b)/.rules > > 2 > Out[25]= b x + x > >Why isn't x^2 substituted by a ? The reason x (x+b)/.{x_ ^ 2->a,expr_:>Expand[expr]} returns b x + x^2 instead of expected b x + a is well explain in the Appendix A.10 of ReplaceAll entry in the Mma book. It says: "The first rule that applies to a particular part is used; no further rules are tried on that part, or any of its subparts". What you might want to do is Expand at expr /. {x_?AtomQ^2->a} Xah xah at best.com, http://www.best.com/~xah/ Symantec Visual Cafe. Windows95/NT. CD-ROM. Shrinkwrapped. $50. email me.