Content deleted Content added
m →Explanation: {{reference needed}} |
m Date maintenance tags and general fixes: build 413: |
||
Line 1:
{{
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]].
Line 13:
* Because of the uncertainty regarding if and when expressions will be evaluated, non-strict languages generally must be [[purely functional]] to be useful.
* All [[computer architecture|hardware architecture]]s in common use are optimized for strict languages, so the best compilers for non-strict languages produce slower code than the best compilers for strict languages, with the notable exception of the [[Glasgow Haskell Compiler]] which outperforms many strict language compilers{{
* [[Space complexity]] of non-strict programs is difficult to understand and predict.
|