Difference between revisions of "Non-strict semantics"
Jump to navigation
Jump to search
(link to Haskell-Cafe) |
m |
||
Line 12: | Line 12: | ||
* Jonathan Cast in Haskell Cafe about [http://www.haskell.org/pipermail/haskell-cafe/2007-November/034807.html What is the role of $! ?] |
* Jonathan Cast in Haskell Cafe about [http://www.haskell.org/pipermail/haskell-cafe/2007-November/034807.html What is the role of $! ?] |
||
+ | |||
+ | * [[Lazy vs. non-strict]] |
||
[[Category:Glossary]] |
[[Category:Glossary]] |
Revision as of 14:17, 19 November 2007
Non-strict semantics means that a function can have a definite value although its argument is undefined. E.g. in Haskell you get
Prelude> True || undefined
True
You will not be able to define a function or
say in C which returns something if you pass an undefined value (e.g. one that is the result of an infinite loop). In fact, in or(true,infinite_loop())
, the code of or
will never be run. In Haskell it is possible because you Call by demand.
See also
- Jonathan Cast in Haskell Cafe about What is the role of $! ?