\subsubsection{Evaluation strategies} Evaluation strategies formalize how programming languages evaluate the code. Most of the commonly used programming languages use \textit{eager evaluation}, whereas functional programming languages tend to prefer \textit{lazy evaluation} \paragraph{Lazy Evaluation} In Lazy Evaluation, expressions are substituted until all possible values are substituted and the expression is then evaluated. At the exam, it is likely that one such task will appear. \paragraph{Eager Evaluation}