Re: If and ReplaceAll

*To*: mathgroup at smc.vnet.net*Subject*: [mg102837] Re: [mg102851] If and ReplaceAll*From*: "Scot T. Martin" <smartin at seas.harvard.edu>*Date*: Sun, 30 Aug 2009 06:04:43 -0400 (EDT)*References*: <200908291033.GAA00437@smc.vnet.net>

I'm not really sure why you want to do this, but nevertheless the probelm is that If[] has the attribute of HoldRest. Here's one way to get the result you want: a = 2 c; f[z_] := If[z > 0, a, 0]; Evaluate /@ (Evaluate /@ (f[z]) /. c -> 1) However, generally, without knowing exactly what problem you want to solve, I think there is undoubtedly a better approach than what you're trying right now. On Sat, 29 Aug 2009, wiso wrote: > a = 2c; > ff[z_] := a; > ff[z] /. c -> 1 > > > and I got 2. Ok, now: > > a = 2 c; > f[z_] := If[z > 0, a, 0] > f[z] /. c -> 1 > > and I got: If[z > 0, a, 0] > but I want: If[z > 0, 2, 0] > > I tried to use Evaluate, FullSimplify... but nothing > > >

**References**:**If and ReplaceAll***From:*wiso <gtu2003@alice.it>