- Unit type
A unit type is a mathematical type that allows only one value (and thus can hold no information).
The carrier (underlying set) associated with a unit type can be any
singleton set . There is anisomorphism between any two such sets, so it is customary to talk about "the" unit type and ignore the details of its value. One may also regard the unit type as the type of 0-tuple s, i.e. the product of no types.The unit type is the
terminal object in the category of types and typed functions. It should not be confused with the zero orbottom type , which allows "no" values and is theinitial object in this category.Unit type in programming languages
Several computer
programming language s provide a unit type to specify the result type of a function with the sole purpose of causing a side effect, and the argument type of a function that does not require arguments. In thefunctional programming languages Haskell and Clean, the unit type is called()
and its only value is also()
, reflecting the 0-tuple interpretation. In ML, the type is calledunit
but the value is written as()
. InCommon Lisp the type named NULL is a unit type which has one value, namely the symbol NIL. NIL itself is used as the name of thebottom type .In C,
C++ , C#, and Java,void
expresses the unit type. These languages do not provide any way to declare an object or represent a value with typevoid
. In practice this feature is usually not necessary because all expressions with the unit type have the same value, and explicit values are therefore redundant. However, it may cause problems in generic programming, such as C++ templates, wherevoid
must be treated differently from other types.References
*
Wikimedia Foundation. 2010.