# Mathematica: output an expression without evaluating it first

1. Feb 20, 2013

### HJ Farnsworth

Greetings,

I recently discovered Mathematica's Format function, and it has been of great use to me. However, there is one thing that I want to use it to do, that I have yet to be able to. I could do this easily, though, if there is some Mathematica function that works as follows...

If I put a semicolon after inputting something in Mathematica, it evaluates what I input without outputting the result. The function that I am looking for is sort of the inverse of this.

I will call the function DoNotEvaluate[] for the rest of this post. Some simple input and output examples for the function that I am looking for would be...

Input: DoNotEvaluate[Sqrt[4]]
Output: Sqrt[4] - note that the output is not 2.

Input: DoNotEvaluate[Sqrt[2*2]]
Output: Sqrt[2*2] - note that the output is neither Sqrt[4] or 2.

Input: x=2*2; DoNotEvaluate[Sqrt[x]]
Output: Sqrt[4]

Does anyone know of a Mathematica function, or other Mathematica technique, that does what my made-up DoNotEvaluate[] function does?

-HJ Farnsworth

2. Feb 20, 2013

### Bill Simpson

Perhaps one of these or some combination?

http://reference.wolfram.com/mathematica/ref/HoldForm.html
http://reference.wolfram.com/mathematica/ref/HoldAll.html
http://reference.wolfram.com/mathematica/ref/HoldComplete.html
http://reference.wolfram.com/mathematica/ref/HoldAllComplete.html
http://reference.wolfram.com/mathematica/ref/Unevaluated.html

There are even more of these, but I don't think the process of shielding some things from evaluation while getting other things done has been explained in any documentation that I have seen.

3. Feb 20, 2013

### HJ Farnsworth

Thank you for the very quick and complete response. That's pretty much what I wanted.

-HJ Farnsworth