Re: Pattern matching
- To: mathgroup at smc.vnet.net
- Subject: [mg116229] Re: Pattern matching
- From: Leonid Shifrin <lshifr at gmail.com>
- Date: Mon, 7 Feb 2011 06:07:14 -0500 (EST)
This is not a bug. The second rule indeed has no chance to execute. The reason that this does not iterate infinitely is that when the first rule applies for n = 0, we get zero as a result. The next time the rule is applied for n = -1, we get zero again, since we multiply -1 and the previous zero. Since the two consecutive results are the same, ReplaceRepeated stops. I used a similar example in my book, where I made the same statement that we should expect infinite iteration, which is apparently incorrect for this particular problem, as you just pointed out. Will add this to a list of things I have to correct. Regards, Leonid On Sun, Feb 6, 2011 at 1:35 PM, StatsMath <stats.math8 at gmail.com> wrote: > Have a question regarding the applicaiton of pattern rules: > > fact[4] //. {fact[n_] :> n fact[n-1], fact[0] -> 1} > > This is a bug since fact[0] needs to be defined 1st, but I expected > the above to grind away idefnitely but it returned a a value 0, > instead of an infininte computation. > > Can you help me understand why the above returns 0? > > Thanks! > >