Also known as call-by-need. In programming languages, a function is lazy if it evaluates its argument at most once. Examples of lazy programming languages are Haskell and Miranda. (But Haskell is not actually lazy; rather its functions are non-strict by default.)