Every programming language has its own strategy to determine when to evaluate the arguments of a function call and what type of value that has to be passed to the parameter. There are two kinds of strategy evaluation that are mostly used in a programming language--strict (eager) evaluation and non-strict (lazy) evaluation.
Evaluating the expression
Running the expression immediately with strict evaluation
Strict evaluation is used in the most imperative programming language. It will immediately execute the code we have. Let's suppose we have the following equation:
int i = (x + (y * z));
In a strict evaluation, the innermost bracket will be calculated first, then work outwards for the preceding equation. This means...