# How to evaluate only arguments, but leave topmost expression unevaluated? [duplicate]

I want to represent expressions mostly in unevaluated form, but being able to evaluate it's subparts.

For example, how to evaluate only arguments, but leave topmost expression unevaluated?

For example, so that

1 + Cos[0]


give

1 + 1


UPDATE

I want Mathematica to act something like follows.

If I write

<something> 1 + Cos[0]


it should respond with

<something> 1 + Cos[0]


i.e. having expression as is, unevaluated

Then if I enter something

<something> 1 + Evaluate[Cos[0]]


it should respond with

<something> 1 + 1


I.e. I want to CONTROL evaluation, not allowing Mathematica to evaluate what it wants. Only what I want.

Imagine gradual scholar math text where expression is converted gradually portion by portion and presented at intermediate stages.

Since I don't know how it can be implemented, I am not describing this with much detail. It can be some combination of holding heads or some global modes turnable on and off.

The goal is not to loose my work done while entering long expressions, which Mathematica tends to throw out by evaluating.

The solution should not be complex like in referred answer, it should be some simple built-in feature.

-

## marked as duplicate by Jens, chris, Oleksandr R., m_goldberg, Sjoerd C. de VriesJun 16 '13 at 22:20

$\sin\,0\neq 1$. –  Guess who it is. Jun 16 '13 at 16:48
@LeonidShifrin Maybe - I don't know what it means to "give" 1 + 1. What is the context? Surely, one can't expect that this is supposed to happen globally to all expressions entered by the user? –  Jens Jun 16 '13 at 19:02
Check Leonid's advice. For example, Hold[expr]/.c_Cos:>Block[{},c/;True] –  Rojo Jun 16 '13 at 20:58