Re: Transformation rules - explain please
- To: mathgroup at smc.vnet.net
- Subject: [mg74047] Re: [mg74023] Transformation rules - explain please
- From: bsyehuda at gmail.com
- Date: Wed, 7 Mar 2007 03:15:48 -0500 (EST)
Hi, In the second example you used = (which stand for Set) in place of == (which stands for Equal) after fixing that the code works just fine lat = {banana, ice, cream, smeared, chocolate, topping}; MySubst[new_, old1_, old2_, {x___, old_, r___} /; Or[old == old1, old == old2]] := {x, new, r}; MySubst[strawberry, chocolate, cream, lat] regards yehuda On 3/6/07, wooks <wookiz at hotmail.com> wrote: > > This is supposed to substitute the first occurrence of old1 or old2 > with new. > > Why does this work > > Clear[old1, old, old2, lat, MySubst] > lat = {banana, ice, cream, smeared, chocolate, topping}; > MySubst[new_, old1_, old2_, {x___, old_, r___}] := {x, new, r} /; > Or[old == old1, old == old2]; > MySubst[strawberry, chocolate, cream, lat] > > but not this (with the conditional on the lhs). > > Clear[old1, old, old2, lat, MySubst] > lat = {banana, ice, cream, smeared, chocolate, topping}; > MySubst[new_, old1_, old2_, {x___, old_, r___} /; Or[old = old1, old > = old2]] := {x, new, r}; > MySubst[strawberry, chocolate, cream, lat] > > I like the idea of using conditional rules like this but have found it > very hit and miss. Often times things don't work so I am seeking > further enlightment. > > I'd be interested to see what would need to be done to make the > conditional work on the lhs. > > >