MathGroup Archive 2007

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

Search the Archive

Transformation rules - explain please

  • To: mathgroup at smc.vnet.net
  • Subject: [mg74023] Transformation rules - explain please
  • From: "wooks" <wookiz at hotmail.com>
  • Date: Tue, 6 Mar 2007 05:32:02 -0500 (EST)

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.



  • Prev by Date: Re: Conversion to html problems
  • Next by Date: Simplifying {0,0,0}.X.{0,0,0}
  • Previous by thread: beginner plot function with parameter
  • Next by thread: Re: Transformation rules - explain please