lazy evaluation definition
<reduction> An evaluation strategy combining normal order
evaluation with updating. Under normal order evaluation
(outermost or call-by-name evaluation) an expression is
evaluated only when its value is needed in order for the
program to return (the next part of) its result. Updating
means that if an expression's value is needed more than once
(i.e. it is shared), the result of the first evaluation is
remembered and subsequent requests for it will return the
remembered value immediately without further evaluation. This
is often implemented by graph reduction. An unevaluated
expression is represented as a closure - a data structure
containing all the information required to evaluate the
expression.
Lazy evaluation is one evaluation strategy used to implement
non-strict functions. Function arguments may be infinite
data structures (especially lists) of values, the components
of which are evaluated as needed.
According to Phil Wadler the term was invented by Jim Morris.
Opposite: eager evaluation.
A partial kind of lazy evaluation implements lazy data
structures or especially lazy lists where function arguments
are passed evaluated but the arguments of data constructors
are not evaluated.
Full laziness is a program transformation which aims to
optimise lazy evaluation by ensuring that all subexpressions
in a function body which do not depend on the function's
arguments are only evaluated once.
(1994-12-14)
Nearby terms:
layer « Layer Two Tunneling Protocol « laziness « lazy evaluation » lazy list » Lazy SML » lazy sml2c
lazy list definition
A list which is built using a non-strict constructor. Any
head or tail of the list may be an unevaluated closure. Also
known as streams since they may be used to carry a sequence of
values from the output of one function to an input of another.
See also Lazy evaluation.
Nearby terms:
Layer Two Tunneling Protocol « laziness « lazy evaluation « lazy list » Lazy SML » lazy sml2c » Lazy Standard ML
Lazy SML definition
Lazy Standard ML
Nearby terms:
laziness « lazy evaluation « lazy list « Lazy SML » lazy sml2c » Lazy Standard ML » lb
lazy sml2c definition
A lazy version sml2c. Portable, written in SML.
Language extensions include first-class continuations,
asynchronous signal handling.
E-mail: <david.tarditi@cs.cmu.edu>.
ftp://dravido.soar.cs.cmu.edu/usr/nemo/sml2c.
Nearby terms:
lazy evaluation « lazy list « Lazy SML « lazy sml2c » Lazy Standard ML » lb » LBA
Lazy Standard ML definition
<language> (LSML) A lazy varient of SML, allowing cyclic
val definitions, by Prateek Mishra <mishra@sbcs.sunysb.edu>.
Latest version: 0.43-1, as of 1993-11-15.
Not to be confused with LML.
ftp://sbcs.sunysb.edu/pub/lsml.
(1999-08-30)
Nearby terms:
lazy list « Lazy SML « lazy sml2c « Lazy Standard ML » lb » LBA » LBE
|