Safe Haskell | None |
---|---|
Language | Haskell2010 |
- readInteger :: String -> Maybe Integer
- readIntegral :: (HasNegation i, IntegralUpsize Word8 i, Additive i, Multiplicative i, IsIntegral i) => String -> Maybe i
- readNatural :: String -> Maybe Natural
- readDouble :: String -> Maybe Double
- readRational :: String -> Maybe Rational
- readFloatingExact :: String -> ReadFloatingCallback a -> Maybe a
Documentation
readInteger :: String -> Maybe Integer #
readIntegral :: (HasNegation i, IntegralUpsize Word8 i, Additive i, Multiplicative i, IsIntegral i) => String -> Maybe i #
Read an Integer from a String
Consume an optional minus sign and many digits until end of string.
readNatural :: String -> Maybe Natural #
Read a Natural from a String
Consume many digits until end of string.
readDouble :: String -> Maybe Double #
Try to read a Double
readRational :: String -> Maybe Rational #
Try to read a floating number as a Rational
Note that for safety reason, only exponent between -10000 and 10000 is allowed as otherwise DoS/OOM is very likely. if you don't want this behavior, switching to a scientific type (not provided yet) that represent the exponent separately is the advised solution.
readFloatingExact :: String -> ReadFloatingCallback a -> Maybe a #
Read an Floating like number of the form:
Call a function with:
- A boolean representing if the number is negative
- The digits part represented as a single natural number (123.456 is represented as 123456)
- The number of digits in the fractional part (e.g. 123.456 => 3)
- The exponent if any
The code is structured as a simple state machine that: