The interpreter evaluates all the arguments before evaluating the function itself (i.e., before rewriting the function application).
It has the advantage that every argument is evaluated only once.
The interpreter passes the arguments "as they are" to the function: this means that they are evaluated every time they are used inside it.