Re: Newbie question about rules
- To: mathgroup at smc.vnet.net
- Subject: [mg21369] Re: Newbie question about rules
- From: "Atul Sharma" <atulksharma at yahoo.com>
- Date: Wed, 29 Dec 1999 23:18:43 -0500 (EST)
- References: <84dn7q$31a@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Plot has the Attribute HoldAll
Attributes[Plot]
{HoldAll, Protected}
This means that the arguement is not evaluated in advance, and your
transformation rule is not applied before the function is plotted. Wrap the
expression in Evaluate to force evaluation of the rule and you will get the
result you want:
Plot[Evaluate[(Sin[x] /. Sin -> Cos)], {x, 0, 2 Pi}]
A. Sharma
--------------------------------------------------
Atul Sharma MD, FRCP(C)
Pediatric Nephrologist,
McGill University/Montreal Children's Hospital
Doug Nelson wrote in message <84dn7q$31a at smc.vnet.net>...
>Hello All,
>
>I just received my copy of Mathematica 4.0 and I've been reading Mastering
>Mathematica.
>
>I'm trying to apply a rule that changes "Sin" to "Cos" in an expression.
It
>seems to work fine with normal expressions, but not with a Plot function.
>
>This works:
> exp2 := Abcfunc[Sin[x]]
> exp2 /. Sin -> Cos
>out = Abcfunc[Cos[x]]
>
>However, the following gives me a sine wave plot in both cases:
>
> exp := Plot[Sin[x], {x,0,2 Pi}]
> exp
>out = < a sine wave plot >
>
> exp /. Sin -> Cos
>out = < another sine wave plot ! >
>
>Why don't I get a cosine plot?
>
>Thanks in advance,
>Doug
>