Any evaluation strategy where evaluation of some or all function arguments is
started before their value is required. A typical example is call-by-value,
where all arguments are passed evaluated. The opposite of eager evaluation is
call-by-need where evaluation of an argument is only started when it is
The term "speculative evaluation" is very close in meaning to eager evaluation
but is applied mostly to parallel architectures whereas eager evaluation is used
of both sequential and parallel evaluators.
Eager evaluation does not specify exactly when argument evaluation takes place -
it might be done fully speculatively (all redexes in the program reduced in
parallel) or may be done by the caller just before the function is entered.
The term "eager evaluation" was invented by Carl Hewitt and Henry Baker
<firstname.lastname@example.org> and used in their paper ["The Incremental Garbage
Collection of Processes", Sigplan Notices, Aug 1977.
ftp://ftp.netcom.com/pub/hb/hbaker/Futures.html]. It was named after
their "eager beaver" evaluator.
See also conservative evaluation, lenient evaluation, strict evaluation.
E5 « EAF « EAG « eager evaluation » Eagle »
EAI » EAPROM