Search in: Word
Vietnamese keyboard: Off
Virtual keyboard: Show
Computing (FOLDOC) dictionary
call-by-name
Jump to user comments
(CBN) (Normal order reduction, leftmost, outermost reduction).
An argument passing convention (first provided by ALGOL 60?)
where argument expressions are passed unevaluated. This is
usually implemented by passing a pointer to some code which
will return the value of the argument and an environment
giving the values of its free variables. This evaluationstrategy is guaranteed to reach a normal form if one
exists.
When used to implement functional programming languages,
call-by-name is usually combined with graph reduction to
avoid repeated evaluation of the same expression. This is
then known as call-by-need. The opposite of call-by-name is
call-by-value where arguments are evaluated before they are
passed to a function. This is more efficient but is less
likely to terminate in the presence of infinite data
structures and recursive functions. Arguments to macros
are usually passed using call-by-name.