Re: A ToExpression question
- To: mathgroup at smc.vnet.net
- Subject: [mg58360] Re: [mg58316] A ToExpression question
- From: János <janos.lobb at yale.edu>
- Date: Tue, 28 Jun 2005 21:56:55 -0400 (EDT)
- References: <200506280913.FAA05098@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
On Jun 28, 2005, at 5:13 AM, Ray Koopman wrote: > 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 ? > Ray, I always marvel at your postings. I do not know. However one of my physics prof used to say: " Whatever you think about the laws of physics, try it first on yourself". So I tried it on ToExpression. I created a g function by replacing Print[x] with ToExpression["x"]: In[26]:= g[x_] := ToExpression[ "ToExpression["*x*"]"]; In[78]:= g[0] Out[78]= 0 In[79]:= g[1] From In[79]:= \!\(\* RowBox[{\(ToExpression::"notstrbox"\), ":", "\<\"\\!\\(\\\"]\\\"\\\\ \\\"ToExpression[\\\"\\) is not a string or \ a box. ToExpression can only interpret strings or boxes as Mathematica input. \ \\!\\(\\*ButtonBox[\\\"More\[Ellipsis]\\\", ButtonStyle->\\ \"RefGuideLinkText\ \\\", ButtonFrame->None, \ ButtonData:>\\\"ToExpression::notstrbox\\\"]\\)\"\>"}]\) Out[79]= $Failed From In[84]:= ToExpression::"notstrbox":"\!\(\"]\"\\ \"ToExpression[\"\) is not a string or \ a box. ToExpression can only interpret strings or boxes as Mathematica input. \ \!\(\*ButtonBox[\"More\[Ellipsis]\", ButtonStyle->\"RefGuideLinkText \", \ ButtonFrame->None, ButtonData:>\"ToExpression::notstrbox\"]\)" Why it did not blow up on g[0] ? On the same time if I replace the outer quotes with ToString like: In[93]:= g[x_] := ToExpression[ ToString[ToExpression[ "x"]]]; Than it works fine. Obviously ToString[x] is not equal to "x" although: In[101]:= "tttt" == ToString[tttt] Out[101]= True With the best, János
- References:
- A ToExpression question
- From: "Ray Koopman" <koopman@sfu.ca>
- A ToExpression question