1. 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.
let floating |