Evaluating the expression
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.
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 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 ...