Re: A ToExpression question

*To*: mathgroup at smc.vnet.net*Subject*: [mg58352] Re: A ToExpression question*From*: "Jens-Peer Kuska" <kuska at informatik.uni-leipzig.de>*Date*: Tue, 28 Jun 2005 21:56:49 -0400 (EDT)*Organization*: Uni Leipzig*References*: <d9r4h4$53i$1@smc.vnet.net>*Sender*: owner-wri-mathgroup at wolfram.com

Hi, f2[] is a replacement rule that say replace all symbols of x in the body of f2[] with the argument. Since the body make no reference to the symbol x it will not replaced. The Module[] in f3[] will create a symbol y$1, y$2, .. with a new number at the end for every call. But the symbol will *never* y alone and so no replacement with x->0 take place. Regards Jens "Ray Koopman" <koopman at sfu.ca> schrieb im Newsbeitrag news:d9r4h4$53i$1 at smc.vnet.net... > f1[x_] := Print[x]; > f2[x_] := ToExpression["Print[x]"]; > f3[x_] := Module[{y = x}, > ToExpression["Print[y]"]]; > f4[x_] := Block[{y = x}, > ToExpression["Print[y]"]]; > > Scan[#[0]&,{f1,f2,f3,f4}] > > 0 > x > y > 0 > > Why don't f2 and f3 print 0 ? >