Topic summary

Strict programming language

Strict programming language

Programming language using strict evaluation A strict programming language is a programming language that only allows strict functions (functions whose parameters must be evaluated completely before they may be called) to be defined by the user. A non-strict programming language allows the user to define non-strict functions, and hence may allow lazy evaluation. In most non-strict languages, the non-strictness extends to data constructors. Description A strict programming language is a programming language which employs a strict programming paradigm, allowing only strict functions (functions whose parameters must be evaluated completely before they may be called) to be defined by the user. A non-strict programming language allows the user to define non-strict functions, and hence may allow lazy evaluation. Non-strictness has several disadvantages which have prevented widespread adoption:[citation needed] Because of the uncertainty regarding if and when expressions will be evaluated, non-strict languages generally must be purely functional to be useful. All hardware architectures in common use are optimized for strict languages, so the best compilers for non-strict languages produce