callbyname
Call-by-name is a parameter passing mechanism used in some programming languages in which the actual argument expressions are not evaluated at the time of the call. Instead, each reference to a formal parameter inside the callee is replaced with the corresponding actual expression and evaluated in the caller’s environment every time the parameter is used. This makes the parameter behave like a symbolic alias to the expression rather than a stored value.
Call-by-name was popularized by the Algol 60 language and is often described in contrast to call-by-value (evaluate
Under call-by-name, the argument expression can be evaluated multiple times, potentially with different results if the
Call-by-name is conceptually between substitution-based evaluation and reference-based binding. It contrasts with call-by-value, which fixes a