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.
- Follow-Ups:
- Re: Transformation rules - explain please
- From: Andrzej Kozlowski <akoz@mimuw.edu.pl>
- Re: Transformation rules - explain please
- From: "Chris Chiasson" <chris@chiasson.name>
- Re: Transformation rules - explain please