An
evaluation strategy under which an
expression is evaluated by repeatedly evaluating its leftmost
innermost
redex. This means that a function's arguments are
evaluated before the function is applied. This method will
not terminate if a function is given a non-terminating
expression as an argument even if the function is not
strict
in that argument. Also known as
call-by-value since the
values of arguments are passed rather than their names. This
is the evaluation strategy used by
ML,
Scheme,
Hope and
most procedural languages such as
C and
Pascal.
See also
normal order reduction,
parallel reduction.