RE: Strange ReplaceAll behavior

*To*: mathgroup at smc.vnet.net*Subject*: [mg36792] RE: [mg36774] Strange ReplaceAll behavior*From*: "DrBob" <drbob at bigfoot.com>*Date*: Thu, 26 Sep 2002 04:56:42 -0400 (EDT)*Reply-to*: <drbob at bigfoot.com>*Sender*: owner-wri-mathgroup at wolfram.com

Sorry; disregard my earlier answer. ru[c] isn't defined, so that obviously wasn't the correct sequence of events. Here's the right one: f[c] == HoldPattern[(a+b)/.ru[a]]/.x->c == (a+b)/.ru[a] == (a+b)/.a->x == x + b == b + x The substitution of c for x occurs before the rule ru[a] is evaluated, so there's no x in the expression to replace. Instead, there's an 'a' to replace with x. If the other sequence had been correct, you have no rule for evaluating ru[c], so it would have remained just that -- ru[c]. When the kernel tried to apply it as a rule to (a+b), there would have been an error. That didn't happen, so that wasn't the sequence of events. Bobby Treat -----Original Message----- From: Lawrence A. Walker Jr. [mailto:lwalker701 at earthlink.net] To: mathgroup at smc.vnet.net Subject: [mg36792] [mg36774] Strange ReplaceAll behavior Hi, For the life of me I am not sure why the following is not working in my v. 4.2: ru[a]=a->x; f[x_]:=(a+b) /. ru[a]; Why do I get f[c] = b+x and not f[c] = b+c? What gives? Thanks, Lawrence -- Lawrence A. Walker Jr. http://www.kingshonor.com