Strict programming language: Difference between revisions

Content deleted Content added
c/e to move info from lead to body
Citation bot (talk | contribs)
Misc citation tidying. | Use this bot. Report bugs. | #UCB_CommandLine
 
(5 intermediate revisions by 4 users not shown)
Line 10:
A strict programming language is a [[programming language]] which employs a strict [[programming paradigm]], allowing only [[strict function]]s (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]].{{Sfn|Scott|2006|p=541}}
 
Non-strictness has several disadvantages which have prevented widespread adoption:{{Citation needed|date=April 2024}}
* Because of the uncertainty regarding if and when expressions will be evaluated, non-strict languages generally must be [[purely functional language|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.
Line 23:
 
==Extension==
{{unreferenced section|date=April 2024}}
In most non-strict languages, the non-strictness extends to [[algebraic data type|data constructor]]s. This allows conceptually infinite data structures (such as the list of all [[prime number]]s) 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]].
 
Line 40 ⟶ 41:
| others =Published by Denise Penrose
| date =2006
| origyearorig-date =1999
| title =Programming Language Pragmatics
| edition ={{Ordinal|2|sup=yes}}
Line 64 ⟶ 65:
| display-editors =2
| date =1998
| origyearorig-date =1997
| title =Database Programming Languages
| series =Lecture Notes in Computer Science