In programming languages, evaluation strategies represent a collection of rules that are used when expressions are evaluated or computed. The way in which arguments are passed to functions represents a particular case for evaluation strategies.
There are two main approaches in evaluation strategies:
Strict strategies , in which the arguments are calculated before they are applied
Non-strict strategies , in which the arguments are calculated only when they are needed, ...