Re: TraceScan
- To: mathgroup at smc.vnet.net
- Subject: [mg63710] Re: TraceScan
- From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>
- Date: Tue, 10 Jan 2006 04:50:36 -0500 (EST)
- Organization: The Open University, Milton Keynes, UK
- References: <dpvmlr$lua$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Chris Rodgers wrote:
> Hi,
>
> I can't seem to get TraceScan to work. Can someone explain why this
> TraceScan command produces only a single line of output (with no
> intermediate steps in evaluation) whereas the later Trace and TracePrint
> examples show several steps?
>
> Doesn't seem to work:
>
> In[94]:=
> TraceScan[InputForm,f[x+y+2+3]]
>
> Out[94]=
> f[5+x+y]
>
> Produces intermediate steps:
>
> In[95]:=
> Trace[f[x+y+2+3]]
>
> Out[95]=
> {{x+y+2+3,5+x+y},f[5+x+y]}
>
> So does this:
>
> In[96]:=
> TracePrint[f[x+y+2+3]]
>
> From In[96]:=
> \[InvisibleSpace]f[x+y+2+3]
>
> From In[96]:=
> \[InvisibleSpace]f
>
> From In[96]:=
> \[InvisibleSpace]x+y+2+3
>
> From In[96]:=
> \[InvisibleSpace]Plus
>
> From In[96]:=
> \[InvisibleSpace]x
>
> From In[96]:=
> \[InvisibleSpace]y
>
> From In[96]:=
> \[InvisibleSpace]2
>
> From In[96]:=
> \[InvisibleSpace]3
>
> From In[96]:=
> \[InvisibleSpace]5+x+y
>
> From In[96]:=
> \[InvisibleSpace]Plus
>
> From In[96]:=
> \[InvisibleSpace]5
>
> From In[96]:=
> \[InvisibleSpace]x
>
> From In[96]:=
> \[InvisibleSpace]y
>
> From In[96]:=
> \[InvisibleSpace]f[5+x+y]
>
> Out[96]=
> f[5+x+y]
>
> Many thanks,
>
> Chris.
>
Hi Chris,
TraceScan works fine indeed. The result you get depends on your choice
of function as first argument. For example
In[1]:=
TraceScan[Print[TraditionalForm[#]]&,f[x+y+2+3]]
From In[1]:=
f(x+y+3+2)
From In[1]:=
f
From In[1]:=
x+y+3+2
From In[1]:=
Plus
From In[1]:=
x
From In[1]:=
y
From In[1]:=
2
From In[1]:=
3
From In[1]:=
x+y+5
From In[1]:=
Plus
From In[1]:=
5
From In[1]:=
x
From In[1]:=
y
From In[1]:=
f(x+y+5)
Out[1]=
f[5+x+y]
Best regards,
/J.M.