<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 4is 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 4We 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.
Try this search on Wikipedia, OneLook, Google
Nearby terms: full-custom « full-duplex « full-duplex Switched Ethernet « full laziness » full-motion video » full outer join » fully associative cache