Strict programming language: Difference between revisions

Content deleted Content added
Explanation: Disambiguate Purely functional to Purely functional language. (Not really since the second currently redirects to the first, but the first has recently been turned into a disambiguation page.)
true
Line 2:
A '''strict programming language''' is one in which only [[strict function]]s (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]].{{Sfn|Scott|2006|p=541}}
 
[[programming language]English words
==Examples==
Nearly all [[programming language]]s in common use today are strict. Examples include [[C Sharp (programming language)|C#]], [[Java (programming language)|Java]] (prior to Java 8), [[Perl]] (through version 5), [[Python (programming language)|Python]], [[Ruby (programming language)|Ruby]], [[Common Lisp]], and [[ML (programming language)|ML]]. Examples for non-strict languages are [[Haskell (programming language)|Haskell]], [[Miranda (programming language)|Miranda]], and [[Clean (programming language)|Clean]].{{Sfn|Cluet & Hull|1998|pp=25–26}}
Languages whose ordinary functions are strict but which provide a [[Macro (computer science)|macro system]] to build non-strict functions include [[C (programming language)|C]], [[C++]], and [[Scheme (programming language)|Scheme]].
 
==Explanation==