       Re: ReplaceList and //.

• To: mathgroup at smc.vnet.net
• Subject: [mg73616] Re: ReplaceList and //.
• From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>
• Date: Fri, 23 Feb 2007 04:32:45 -0500 (EST)
• Organization: The Open University, Milton Keynes, UK
• References: <erjo1u\$nn5\$1@smc.vnet.net>

```Mr Ajit Sen wrote:
> Dear Mathgroup,
>
>  Could someone please enlighten me as to when I should
> use  ReplaceList and when to use //.  in pattern
> matching.
>
>   Thus, if  Y = a x^2/b^3,  then
>
>    ReplaceList[Y, a^m_. x^n_. b^p_. :> z
>     b^(p + 1) a^(m - 1) x^(n - 1)][]
>
>  as well as
>
>   Y //. a^m_. x^n_. b^p_. :> z b^(p + 1) a^(m - 1)
> x^(n - 1)
>
> give the same result.
>
>  However,
>
>      ReplaceList[a*b*c, {(x_)*(y_) -> x^y, (x_)*(y_)
> -> x + y}]
>
>  and
>       a*b*c //. {(x_)*(y_) :> x^y, (x_y)*_ :> x + y}
>
>   yield different outputs.
>
>  What am I missing here?

//. applies the transformation rule(s) once, as /. does. When done, //.
applies the transformation rule(s) on the resulting expression. If any
modifications have been made, //. applies again the rules the new
expression; otherwise it stops.

Also, keep in mind that /. and //. attempt to match the most general
patterns. For instance, a rule such as x_*y_, when applied to  a*b*c,
will match only a*(b*c) (that is x -> a and y -> b*c) although there are
some other interpretations.

The built-in function Trace should help you to understand what is going on:

In:=
Trace[a*b*c /. {(x_)*(y_) -> x^y, (x_)*(y_) -> x + y}]

Out=
y
{a b c /. {(x_) (y_) -> x , (x_) (y_) -> x + y},

b c    b c
Times[a   ], a   }

In:=
Trace[a*b*c //. {(x_)*(y_) -> x^y, (x_y)*_ -> x + y}]

Out=
{{{{(x_y) _, _ (x_y)}, _ (x_y) -> x + y,

_ (x_y) -> x + y},

y
{(x_) (y_) -> x , _ (x_y) -> x + y}},

y
a b c //. {(x_) (y_) -> x , _ (x_y) -> x + y},

c
b c    b c    b
{Times[a   ], a   }, a  }

Regards,
Jean-Marc

```

• Prev by Date: Re: split
• Next by Date: RE: Re: Showing that ArcSinh/ArcCsch is 3?
• Previous by thread: Re: ReplaceList and //.
• Next by thread: NonLinearRegression Weights