Bottom
From HaskellWiki
(Added remark that _|_ is a member of any type) |
(mentioned Prelude.undefined) |
||
| Line 21: | Line 21: | ||
<haskell> | <haskell> | ||
bottom = error "Non-terminating computation!" | bottom = error "Non-terminating computation!" | ||
| + | </haskell> | ||
| + | |||
| + | Indeed, the Prelude exports a function | ||
| + | |||
| + | <haskell> | ||
| + | undefined = error "Prelude; undefined" | ||
</haskell> | </haskell> | ||
[[Category:Glossary]] | [[Category:Glossary]] | ||
Revision as of 22:08, 4 January 2008
The term bottom refers to a computation which never completes successfully. That includes a computation that fails due to some kind of error, and a computation that just goes into an infinite loop (without returning any data).
The mathematical symbol for bottom is '⊥'. That's Unicode character 22A5 hex = 8869 decimal. Also available in HTML as '⊥' and in LaTeX as '\bot' (within math mode). In plain ASCII, it's often written as the extremely ugly character sequence '_|_'.
Bottom is a member of any type, even the trivial type () or the equivalent simple type:
data Unary = Unary
If it were not, the compiler could solve the halting problem and statically determine whether any computation terminated.
Bottom can be expressed in Haskell thus:
bottom = bottomor
bottom = error "Non-terminating computation!"
Indeed, the Prelude exports a function
undefined = error "Prelude; undefined"
