A
strict programming language is one in which only
strict functions (functions whose parameters must be evaluated completely before they may be called) may be defined by the user. A
non-strict programming language allows the user to define non-strict functions, and hence may allow
lazy evaluation.