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.
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 we will calculate y * z
, then add the result to x
. To make it clearer, let's see the following strict.cpp
code:
/* strict.cpp */ #include <iostream> using namespace std; int OuterFormula(int x, int yz) { // For logging purpose only cout ...