from
The Free On-line Dictionary of Computing (8 July 2008)
full laziness
<functional programming> A transformation, described by
Wadsworth in 1971, which ensures that subexpressions in a
function body which do not depend on the function's arguments
are only evaluated once. E.g. each time the function
f x = x + sqrt 4
is applied, (sqrt 4) will be evaluated. Since (sqrt 4) does
not depend on x, we could transform this to:
f x = x + sqrt4
sqrt4 = sqrt 4
We have replaced the dynamically created (sqrt 4) with a
single shared constant which, in a {graph reduction} system,
will be evaluated the first time it is needed and then updated
with its value.
See also {fully lazy lambda lifting}, {let floating}.
(1994-11-09)