Lazy evaluation


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)

Read Also:

  • Lazy-eye

    noun, Informal. 1. the deviating eye in . 2. an amblyopic eye. 3. . 4. .

  • Lazying

    [ley-zee] /ˈleɪ zi/ adjective, lazier, laziest. 1. averse or disinclined to work, activity, or exertion; indolent. 2. causing idleness or indolence: a hot, lazy afternoon. 3. slow-moving; sluggish: a lazy stream. 4. (of a livestock brand) placed on its side instead of upright. verb (used without object), lazied, lazying. 5. to laze. /ˈleɪzɪ/ adjective lazier, […]

  • Lazy list

    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.

  • Lazy sml

    Lazy Standard ML

  • Lazy sml2c

    A lazy version sml2c. Portable, written in SML. Language extensions include first-class continuations, asynchronous signal handling. E-mail: . (ftp://dravido.soar.cs.cmu.edu/usr/nemo/sml2c).


Disclaimer: Lazy evaluation definition / meaning should not be considered complete, up to date, and is not intended to be used in place of a visit, consultation, or advice of a legal, medical, or any other professional. All content on this website is for informational purposes only.