I mean, suppose I have this expression:
2 + 2
I want to get something like this:
Plus[2, 2]
as an output. I've tried FullForm, but this just evaluates 2+2 and returns 4. Is this even possible?
I mean, suppose I have this expression:
2 + 2
I want to get something like this:
Plus[2, 2]
as an output. I've tried FullForm, but this just evaluates 2+2 and returns 4. Is this even possible?
tree = Function[x, Defer @ FullForm @ x, HoldAll];
Now:
2 + 2 // tree
Plus[2, 2]
I used Defer
to allow the output to be evaluated. If you do not prefer this replace it with HoldForm
.
For some explanation of the mechanics of this code see: Why doesn't "Defer" work with "TableForm"?
See also my standard methods for analyzing parsing.
2+2//Hold//FullForm
$\endgroup$ – C. E. Aug 27 '14 at 21:44HoldForm
$\endgroup$ – mfvonh Aug 27 '14 at 21:44Hold[2+2] // FullForm
. You might also likeTreeForm
for this purpose. $\endgroup$ – evanb Aug 27 '14 at 21:45Hold
and its ilk (Defer
,Unevaluated
,Inactive
, etc.) are the mechanisms for this, depending on precisely what you want. Look at this page for more information. $\endgroup$ – mfvonh Aug 27 '14 at 21:49