*** Welcome to piglix ***

Strict programming language


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) 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.

Nearly all programming languages in common use today are strict. Examples include C#, Java (prior to Java 8), Perl (through version 5), Python, Ruby, Common Lisp, and ML. Examples for non-strict languages are Haskell, Miranda, and Clean. Languages whose ordinary functions are strict but which provide a macro system to build non-strict functions include C, C++, and Scheme.

In most non-strict languages the non-strictness extends to data constructors. This allows conceptually infinite data structures (such as the list of all prime numbers) to be manipulated in the same way as ordinary finite data structures. It also allows for the use of very large but finite data structures such as the complete game tree of chess.


...
Wikipedia

...