Abstract / Description of output
Lazy or call-by-need languages schedule work dynamically by building closures and shunning side effects; strict or call-by-value languages avoid the overhead of closures and may exploit side effects. Each style has complementary advantages and complementary adherents. The gap between the lazy and strict camps has two dimensions, which we shall name style and models. Recent developments suggest that along both dimensions the gap is shrinking. We list some commercial applications of each kind of language and examine each dimension of difference in turn.