Explanation
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.
Non-strictness has several disadvantages which have prevented widespread adoption:
- Because of the uncertainty regarding if and when expressions will be evaluated, non-strict languages generally must be purely functional to be useful.
- All hardware architectures 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.
Strict programming languages are often associated with eager evaluation, and non-strict languages with lazy evaluation, but other evaluation strategies are possible in each case. The terms "eager programming language" and "lazy programming language" are often used as synonyms for "strict programming language" and "non-strict programming language" respectively.
In many strict languages, some advantages of non-strict functions can be obtained through the use of macros or thunks.
Read more about this topic: Strict Programming Language
Famous quotes containing the word explanation:
“Natural selection, the blind, unconscious, automatic process which Darwin discovered, and which we now know is the explanation for the existence and apparently purposeful form of all life, has no purpose in mind. It has no mind and no minds eye. It does not plan for the future. It has no vision, no foresight, no sight at all. If it can be said to play the role of the watchmaker in nature, it is the blind watchmaker.”
—Richard Dawkins (b. 1941)
“The explanation of the propensity of the English people to portrait painting is to be found in their relish for a Fact. Let a man do the grandest things, fight the greatest battles, or be distinguished by the most brilliant personal heroism, yet the English people would prefer his portrait to a painting of the great deed. The likeness they can judge of; his existence is a Fact. But the truth of the picture of his deeds they cannot judge of, for they have no imagination.”
—Benjamin Haydon (17861846)
“There is a great deal of unmapped country within us which would have to be taken into account in an explanation of our gusts and storms.”
—George Eliot [Mary Ann (or Marian)