Re: replacement x->y except in Exp[x]

*To*: mathgroup at smc.vnet.net*Subject*: [mg110885] Re: replacement x->y except in Exp[x]*From*: Andrzej Kozlowski <akozlowski at gmail.com>*Date*: Sat, 10 Jul 2010 04:00:20 -0400 (EDT)*References*: <i14aij$g0p$1@smc.vnet.net> <201007090034.UAA21449@smc.vnet.net> <i16vm6$iuj$1@smc.vnet.net> <4C3787FD.7010401@cs.berkeley.edu>

On 10 Jul 2010, at 05:35, Richard Fateman wrote: > Andrzej Kozlowski wrote: > .... > >> Suppose in the expression 2/3 I + x/y I you wish to replace all fractions (that is 2/3 and x/y) by r and I by d. Without worrying about evaluation you can do this as follows: >> Unevaluated[Unevaluated[2/3 I + x/y I] /. HoldPattern[x_/y_] -> r] /. >> HoldPattern[I] -> d >> 2 d r >> ... > > >> All this is perfectly reasonable, logical and a great deal easier than almost anything in an undergraduate math syllabus at a reasonable university. >> > Really? > > So if someone gives you a basket of fruit and says to replace the apples with bananas, you explain that it is easy: First you tell that person to throw away that basket and come up with a new basket in which he has wrapped the whole basket in a layer of aluminum foil. You then replace > "apple-wrapped-in-foil" by banana. > > You then proclaim the problem solved. > > Unfortunately, if I give you an already unwrapped basket of fruit, it is impossible. (that is, an already simplified Mathematica expression) > > Which is presumably the usual state of the basket. Impossible? For example (just one of many ways to do this): expr = 1 + I; ReleaseHold[ ToExpression[ToString[expr, TraditionalForm], InputForm, Hold] /. HoldPattern[I] -> d] d+1 etc. > > > A discussion and partial definition of BetterRules, a Mathematica program that does things like this, is in > http://www.cs.berkeley.edu/~fateman/papers/better-rules.pdf It's amazing what some people call "papers" these days. Andrzej Kozlowski

**References**:**Re: replacement x->y except in Exp[x]***From:*AES <siegman@stanford.edu>