Following are the basic numeric types
supported by Haskell. All these numeric types are instances of Num.
Type
|
Description
|
Int
|
It is bounded integer type, represent
integer values, For 32-bit machines the range goes from -2147483648 to
2147483647. For 64-bit machine the range goes from -9223372036854775808 to
9223372036854775807
|
Integer
|
It is unbounded integer type, represent
arbitrarily large integer values. Size is limited by the amount of memory
available on your machine.
|
Float
|
Single precision floating point value.
Used to represent real numbers like 10.32, 9.86 etc., Usage of Float is discouraged,
since Haskell compilers are written Double data type efficient code.
|
Double
|
Double precision floating point value.
Used to represent real numbers like 10.32, 9.86 etc.,
|
Following code snippet gives you the
maximum and minimum values of Int type.
variable.hs
biggestInt, smallestInt :: Int biggestInt = maxBound smallestInt = minBound
Prelude> :load variable.hs [1 of 1] Compiling Main ( variable.hs, interpreted ) Ok, modules loaded: Main. *Main> *Main> biggestInt 9223372036854775807 *Main> *Main> smallestInt -9223372036854775808
When a function signature supports a
type T, then it can able to support all the child types of type T.
For example,
Prelude> :t (+) (+) :: Num a => a -> a -> a
Operator + takes any variable of type
Num, so it can support all sub types like Int, Integer, Float, Double.
Prelude> 10 + 90.09 100.09 Prelude> 10.01+100.98 110.99000000000001 Prelude> 10.01+987 997.01
No comments:
Post a Comment