MathGroup Archive 2006

[Date Index] [Thread Index] [Author Index]

Search the Archive

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.


  • Prev by Date: Re: TraceScan
  • Next by Date: Re: trouble with NDSolve
  • Previous by thread: Re: TraceScan
  • Next by thread: PrincipalComponents