let floating


A program transformation used in functional programming to implement full laziness. E.g. the function

 f x = x + sqrt 4

can be expressed as

 f x = let t = sqrt 4 in x + t

but note that t does not depend on the argument x so we can automatically transform this to

 t = sqrt 4
 f x = x + t

Making t into a global constant which need only be evaluated at most once, rather than every time f is called. The general idea is to float each subexpression as far out (toward the top level) as possible to maximise sharing.

Last updated: 1997-07-09

Nearby terms:

less thanLessTiflet floatingletterbomblevel 1 cachelevel 2 cache

Try this search on Wikipedia, Wiktionary, Google, OneLook.