Word:

fully lazy lambda lifting

fully lazy lambda lifting - John Hughes's optimisation of lambda lifting to give full laziness. Maximal free expressions are shared to minimise the amount of recalculation. Each inner sub-expression is replaced by a function of its maximal free expressions (expressions not containing any bound variable) applied to those expressions. E.g.

f = \ x . (\ y . (+) (sqrt x) y)

((+) (sqrt x)) is a maximal free expression in (\ y . (+) (sqrt x) y) so this inner abstraction is replaced with

(\ g . \ y . g y) ((+) (sqrt x))

Now, if a partial application of f is shared, the result of evaluating (sqrt x) will also be shared rather than re-evaluated on each application of f. As Chin notes, the same benefit could be achieved without introducing the new higher-order function, g, if we just extracted out (sqrt x).

This is similar to the code motion optimisation in procedural languages where constant expressions are moved outside a loop or procedure.
Browse
fuller's teasel
Fuller's thistle
fullerene
Fullery
Fulling
Fulling mill
Fullmart
Fullness
Fullonical
Fully
fully associative cache
Fully Automated Compiling Technique
Fully committed
fully fashioned
fully fledged
fully grown
-- fully lazy lambda lifting --
fully qualified domain name
Fulmar
fulmar petrel
Fulmarus
Fulmarus glacialis
Fulmiaic
Fulminant
Fulminant Hepatic Failure (FHF)
Fulminate
Fulminate of gold
fulminate of mercury
fulminate of silver
Fulminating
fulminating gold
fulminating mercury
Fulminating oil
Definitions Index: # A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

About this site and copyright information - Online Dictionary Home - Privacy Policy