| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Text.Printer.Integral
Description
Print integral numbers in common positional numeral systems.
Synopsis
- class PositionalSystem s where
- class PositionalSystem s => BitSystem s where
- data Binary = Binary
- data Octal = Octal
- data Decimal = Decimal
- data Hexadecimal = Hexadecimal
- data LowHex = LowHex
- data UpHex = UpHex
- nonNegative :: (PositionalSystem s, Integral α, Printer p) => s -> α -> p
- nnBinary :: (Integral α, Printer p) => α -> p
- nnOctal :: (Integral α, Printer p) => α -> p
- nnDecimal :: (Integral α, Printer p) => α -> p
- nnLowHex :: (Integral α, Printer p) => α -> p
- nnUpHex :: (Integral α, Printer p) => α -> p
- nnBits :: (BitSystem s, Num α, Bits α, Printer p) => s -> α -> p
- nnBinaryBits :: (Num α, Bits α, Printer p) => α -> p
- nnOctalBits :: (Num α, Bits α, Printer p) => α -> p
- nnLowHexBits :: (Num α, Bits α, Printer p) => α -> p
- nnUpHexBits :: (Num α, Bits α, Printer p) => α -> p
- nonPositive :: (PositionalSystem s, Integral α, Printer p) => s -> α -> p
- npBinary :: (Integral α, Printer p) => α -> p
- npOctal :: (Integral α, Printer p) => α -> p
- npDecimal :: (Integral α, Printer p) => α -> p
- npLowHex :: (Integral α, Printer p) => α -> p
- npUpHex :: (Integral α, Printer p) => α -> p
- npBits :: (BitSystem s, Ord α, Num α, Bits α, Printer p) => s -> α -> p
- npBinaryBits :: (Ord α, Num α, Bits α, Printer p) => α -> p
- npOctalBits :: (Ord α, Num α, Bits α, Printer p) => α -> p
- npLowHexBits :: (Ord α, Num α, Bits α, Printer p) => α -> p
- npUpHexBits :: (Ord α, Num α, Bits α, Printer p) => α -> p
- number' :: (PositionalSystem s, Ord α, Integral α, Printer p) => s -> p -> p -> p -> α -> p
- number :: (PositionalSystem s, Ord α, Integral α, Printer p) => s -> α -> p
- binary' :: (Ord α, Integral α, Printer p) => p -> p -> p -> α -> p
- binary :: (Ord α, Integral α, Printer p) => α -> p
- octal' :: (Ord α, Integral α, Printer p) => p -> p -> p -> α -> p
- octal :: (Ord α, Integral α, Printer p) => α -> p
- decimal' :: (Ord α, Integral α, Printer p) => p -> p -> p -> α -> p
- decimal :: (Ord α, Integral α, Printer p) => α -> p
- lowHex' :: (Ord α, Integral α, Printer p) => p -> p -> p -> α -> p
- lowHex :: (Ord α, Integral α, Printer p) => α -> p
- upHex' :: (Ord α, Integral α, Printer p) => p -> p -> p -> α -> p
- upHex :: (Ord α, Integral α, Printer p) => α -> p
- bits' :: (BitSystem s, Ord α, Num α, Bits α, Printer p) => s -> p -> p -> p -> α -> p
- bits :: (BitSystem s, Ord α, Num α, Bits α, Printer p) => s -> α -> p
- binaryBits' :: (Ord α, Num α, Bits α, Printer p) => p -> p -> p -> α -> p
- binaryBits :: (Ord α, Num α, Bits α, Printer p) => α -> p
- octalBits' :: (Ord α, Num α, Bits α, Printer p) => p -> p -> p -> α -> p
- octalBits :: (Ord α, Num α, Bits α, Printer p) => α -> p
- lowHexBits' :: (Ord α, Num α, Bits α, Printer p) => p -> p -> p -> α -> p
- lowHexBits :: (Ord α, Num α, Bits α, Printer p) => α -> p
- upHexBits' :: (Ord α, Num α, Bits α, Printer p) => p -> p -> p -> α -> p
- upHexBits :: (Ord α, Num α, Bits α, Printer p) => α -> p
Positional systems
class PositionalSystem s where #
Positional numeral system.
Minimal complete definition
systemName, radixIn, isDigitIn, isNzDigitIn, fromDigitIn, fromNzDigitIn, unsafeFromDigitIn, intToDigitIn
Methods
systemName :: s -> String #
The name of the system (e.g. "binary", "decimal").
The radix of the system.
isDigitIn :: s -> Char -> Bool #
Test if a character is a digit.
isNzDigitIn :: s -> Char -> Bool #
Test if a character is a non-zero digit.
fromDigitIn :: Num α => s -> Char -> Maybe α #
Map digits to the corresponding numbers. Return Nothing on
other inputs.
fromNzDigitIn :: Num α => s -> Char -> Maybe α #
Map non-zero digits to the corresponding numbers. Return Nothing on
other inputs.
unsafeFromDigitIn :: Num α => s -> Char -> α #
Map digits to the corresponding numbers. No checks are performed.
intToDigitIn :: s -> Int -> Char #
Map Int values to the corresponding digits. Inputs must be
non-negative and less than the radix.
printDigitIn :: Printer p => s -> Char -> p #
Print a digit.
printZeroIn :: Printer p => s -> p #
Instances
class PositionalSystem s => BitSystem s where #
Positonal numeral system with a power of two radix.
Minimal complete definition
Methods
digitBitsIn :: s -> Int #
Numer of bits occupied by a digit.
digitMaskIn :: Num α => s -> α #
The number that has digitBitsIn least significant bits set to ones
and all the other bits set to zeroes.
lastDigitIn :: Bits α => s -> α -> Int #
Map the last digit of a number to the corresponding Int value.
Instances
| BitSystem UpHex # | |
Defined in Text.Printer.Integral Methods digitBitsIn :: UpHex -> Int # digitMaskIn :: Num α => UpHex -> α # lastDigitIn :: Bits α => UpHex -> α -> Int # | |
| BitSystem LowHex # | |
Defined in Text.Printer.Integral Methods digitBitsIn :: LowHex -> Int # digitMaskIn :: Num α => LowHex -> α # lastDigitIn :: Bits α => LowHex -> α -> Int # | |
| BitSystem Hexadecimal # | |
Defined in Text.Printer.Integral Methods digitBitsIn :: Hexadecimal -> Int # digitMaskIn :: Num α => Hexadecimal -> α # lastDigitIn :: Bits α => Hexadecimal -> α -> Int # | |
| BitSystem Octal # | |
Defined in Text.Printer.Integral Methods digitBitsIn :: Octal -> Int # digitMaskIn :: Num α => Octal -> α # lastDigitIn :: Bits α => Octal -> α -> Int # | |
| BitSystem Binary # | |
Defined in Text.Printer.Integral Methods digitBitsIn :: Binary -> Int # digitMaskIn :: Num α => Binary -> α # lastDigitIn :: Bits α => Binary -> α -> Int # | |
The binary numeral system.
Constructors
| Binary |
Instances
| Eq Binary # | |
| Ord Binary # | |
| Read Binary # | |
| Show Binary # | |
| Generic Binary # | |
| BitSystem Binary # | |
Defined in Text.Printer.Integral Methods digitBitsIn :: Binary -> Int # digitMaskIn :: Num α => Binary -> α # lastDigitIn :: Bits α => Binary -> α -> Int # | |
| PositionalSystem Binary # | |
Defined in Text.Printer.Integral Methods systemName :: Binary -> String # radixIn :: Num α => Binary -> α # isDigitIn :: Binary -> Char -> Bool # isNzDigitIn :: Binary -> Char -> Bool # fromDigitIn :: Num α => Binary -> Char -> Maybe α # fromNzDigitIn :: Num α => Binary -> Char -> Maybe α # unsafeFromDigitIn :: Num α => Binary -> Char -> α # intToDigitIn :: Binary -> Int -> Char # printDigitIn :: Printer p => Binary -> Char -> p # printZeroIn :: Printer p => Binary -> p # | |
| type Rep Binary # | |
The octal numeral system.
Constructors
| Octal |
Instances
| Eq Octal # | |
| Ord Octal # | |
| Read Octal # | |
| Show Octal # | |
| Generic Octal # | |
| BitSystem Octal # | |
Defined in Text.Printer.Integral Methods digitBitsIn :: Octal -> Int # digitMaskIn :: Num α => Octal -> α # lastDigitIn :: Bits α => Octal -> α -> Int # | |
| PositionalSystem Octal # | |
Defined in Text.Printer.Integral Methods systemName :: Octal -> String # radixIn :: Num α => Octal -> α # isDigitIn :: Octal -> Char -> Bool # isNzDigitIn :: Octal -> Char -> Bool # fromDigitIn :: Num α => Octal -> Char -> Maybe α # fromNzDigitIn :: Num α => Octal -> Char -> Maybe α # unsafeFromDigitIn :: Num α => Octal -> Char -> α # intToDigitIn :: Octal -> Int -> Char # printDigitIn :: Printer p => Octal -> Char -> p # printZeroIn :: Printer p => Octal -> p # | |
| type Rep Octal # | |
The decimal numeral system.
Constructors
| Decimal |
Instances
| Eq Decimal # | |
| Ord Decimal # | |
Defined in Text.Printer.Integral | |
| Read Decimal # | |
| Show Decimal # | |
| Generic Decimal # | |
| PositionalSystem Decimal # | |
Defined in Text.Printer.Integral Methods systemName :: Decimal -> String # radixIn :: Num α => Decimal -> α # isDigitIn :: Decimal -> Char -> Bool # isNzDigitIn :: Decimal -> Char -> Bool # fromDigitIn :: Num α => Decimal -> Char -> Maybe α # fromNzDigitIn :: Num α => Decimal -> Char -> Maybe α # unsafeFromDigitIn :: Num α => Decimal -> Char -> α # intToDigitIn :: Decimal -> Int -> Char # printDigitIn :: Printer p => Decimal -> Char -> p # printZeroIn :: Printer p => Decimal -> p # | |
| type Rep Decimal # | |
data Hexadecimal #
The hexadecimal numeral system.
Constructors
| Hexadecimal |
Instances
The hexadecimal numeral system, using lower case digits.
Constructors
| LowHex |
Instances
| Eq LowHex # | |
| Ord LowHex # | |
| Read LowHex # | |
| Show LowHex # | |
| Generic LowHex # | |
| BitSystem LowHex # | |
Defined in Text.Printer.Integral Methods digitBitsIn :: LowHex -> Int # digitMaskIn :: Num α => LowHex -> α # lastDigitIn :: Bits α => LowHex -> α -> Int # | |
| PositionalSystem LowHex # | |
Defined in Text.Printer.Integral Methods systemName :: LowHex -> String # radixIn :: Num α => LowHex -> α # isDigitIn :: LowHex -> Char -> Bool # isNzDigitIn :: LowHex -> Char -> Bool # fromDigitIn :: Num α => LowHex -> Char -> Maybe α # fromNzDigitIn :: Num α => LowHex -> Char -> Maybe α # unsafeFromDigitIn :: Num α => LowHex -> Char -> α # intToDigitIn :: LowHex -> Int -> Char # printDigitIn :: Printer p => LowHex -> Char -> p # printZeroIn :: Printer p => LowHex -> p # | |
| type Rep LowHex # | |
The hexadecimal numeral system, using upper case digits.
Constructors
| UpHex |
Instances
| Eq UpHex # | |
| Ord UpHex # | |
| Read UpHex # | |
| Show UpHex # | |
| Generic UpHex # | |
| BitSystem UpHex # | |
Defined in Text.Printer.Integral Methods digitBitsIn :: UpHex -> Int # digitMaskIn :: Num α => UpHex -> α # lastDigitIn :: Bits α => UpHex -> α -> Int # | |
| PositionalSystem UpHex # | |
Defined in Text.Printer.Integral Methods systemName :: UpHex -> String # radixIn :: Num α => UpHex -> α # isDigitIn :: UpHex -> Char -> Bool # isNzDigitIn :: UpHex -> Char -> Bool # fromDigitIn :: Num α => UpHex -> Char -> Maybe α # fromNzDigitIn :: Num α => UpHex -> Char -> Maybe α # unsafeFromDigitIn :: Num α => UpHex -> Char -> α # intToDigitIn :: UpHex -> Int -> Char # printDigitIn :: Printer p => UpHex -> Char -> p # printZeroIn :: Printer p => UpHex -> p # | |
| type Rep UpHex # | |
Numeral printers
nonNegative :: (PositionalSystem s, Integral α, Printer p) => s -> α -> p #
Print a non-negative number in the specified positional numeral system.
nnBinary :: (Integral α, Printer p) => α -> p #
Print a non-negative number in the binary numeral system.
nnOctal :: (Integral α, Printer p) => α -> p #
Print a non-negative number in the octal numeral system.
nnDecimal :: (Integral α, Printer p) => α -> p #
Print a non-negative number in the decimal numeral system.
nnLowHex :: (Integral α, Printer p) => α -> p #
Print a non-negative number in the hexadecimal numeral system using lower case digits.
nnUpHex :: (Integral α, Printer p) => α -> p #
Print a non-negative number in the hexadecimal numeral system using upper case digits.
nnBits :: (BitSystem s, Num α, Bits α, Printer p) => s -> α -> p #
Print a non-negative binary number in the specified positional numeral system.
nnBinaryBits :: (Num α, Bits α, Printer p) => α -> p #
Print a non-negative binary number in the binary numeral system.
nnOctalBits :: (Num α, Bits α, Printer p) => α -> p #
Print a non-negative binary number in the octal numeral system.
nnLowHexBits :: (Num α, Bits α, Printer p) => α -> p #
Print a non-negative binary number in the hexadecimal numeral system using lower case digits.
nnUpHexBits :: (Num α, Bits α, Printer p) => α -> p #
Print a non-negative binary number in the hexadecimal numeral system using upper case digits.
nonPositive :: (PositionalSystem s, Integral α, Printer p) => s -> α -> p #
Print a non-positive number in the specified positional numeral system.
For example, would print "123".nonPositive Decimal (-123)
npBinary :: (Integral α, Printer p) => α -> p #
Print a non-positive number in the binary numeral system.
npOctal :: (Integral α, Printer p) => α -> p #
Print a non-positive number in the octal numeral system.
npDecimal :: (Integral α, Printer p) => α -> p #
Print a non-positive number in the decimal numeral system.
npLowHex :: (Integral α, Printer p) => α -> p #
Print a non-positive number in the hexadecimal numeral system using lower case digits.
npUpHex :: (Integral α, Printer p) => α -> p #
Print a non-positive number in the hexadecimal numeral system using upper case digits.
npBinaryBits :: (Ord α, Num α, Bits α, Printer p) => α -> p #
Print a non-positive binary number in the binary numeral system.
npOctalBits :: (Ord α, Num α, Bits α, Printer p) => α -> p #
Print a non-positive binary number in the octal numeral system.
npLowHexBits :: (Ord α, Num α, Bits α, Printer p) => α -> p #
Print a non-positive binary number in the hexadecimal numeral system using lower case digits.
npUpHexBits :: (Ord α, Num α, Bits α, Printer p) => α -> p #
Print a non-positive binary number in the hexadecimal numeral system using upper case digits.
Arguments
| :: (PositionalSystem s, Ord α, Integral α, Printer p) | |
| => s | |
| -> p | Prefix for negative values |
| -> p | Zero printer |
| -> p | Prefix for positive values |
| -> α | |
| -> p |
Print a number in the specified positional numeral system.
number :: (PositionalSystem s, Ord α, Integral α, Printer p) => s -> α -> p #
Print a number in the specified positional numeral system. Negative values are prefixed with a minus sign.
Arguments
| :: (Ord α, Integral α, Printer p) | |
| => p | Prefix for negative values |
| -> p | Zero printer |
| -> p | Prefix for positive values |
| -> α | |
| -> p |
Print a number in the binary numeral system.
binary :: (Ord α, Integral α, Printer p) => α -> p #
Print a number in the binary numeral system. Negative values are prefixed with a minus sign.
Arguments
| :: (Ord α, Integral α, Printer p) | |
| => p | Prefix for negative values |
| -> p | Zero printer |
| -> p | Prefix for positive values |
| -> α | |
| -> p |
Print a number in the octal numeral system.
octal :: (Ord α, Integral α, Printer p) => α -> p #
Print a number in the octal numeral system. Negative values are prefixed with a minus sign.
Arguments
| :: (Ord α, Integral α, Printer p) | |
| => p | Prefix for negative values |
| -> p | Zero printer |
| -> p | Prefix for positive values |
| -> α | |
| -> p |
Print a number in the decimal numeral system.
decimal :: (Ord α, Integral α, Printer p) => α -> p #
Print a number in the decimal numeral system. Negative values are prefixed with a minus sign.
Arguments
| :: (Ord α, Integral α, Printer p) | |
| => p | Prefix for negative values |
| -> p | Zero printer |
| -> p | Prefix for positive values |
| -> α | |
| -> p |
Print a number in the hexadecimal numeral system using lower case digits.
lowHex :: (Ord α, Integral α, Printer p) => α -> p #
Print a number in the hexadecimal numeral system using lower case digits. Negative values are prefixed with a minus sign.
Arguments
| :: (Ord α, Integral α, Printer p) | |
| => p | Prefix for negative values |
| -> p | Zero printer |
| -> p | Prefix for positive values |
| -> α | |
| -> p |
Print a number in the hexadecimal numeral system using upper case digits.
upHex :: (Ord α, Integral α, Printer p) => α -> p #
Print a number in the hexadecimal numeral system using upper case digits. Negative values are prefixed with a minus sign.
Arguments
| :: (BitSystem s, Ord α, Num α, Bits α, Printer p) | |
| => s | |
| -> p | Prefix for negative values |
| -> p | Zero printer |
| -> p | Prefix for positive values |
| -> α | |
| -> p |
Print a binary number in the specified positional numeral system.
bits :: (BitSystem s, Ord α, Num α, Bits α, Printer p) => s -> α -> p #
Print a binary number in the specified positional numeral system. Negative values are prefixed with a minus sign.
Arguments
| :: (Ord α, Num α, Bits α, Printer p) | |
| => p | Prefix for negative values |
| -> p | Zero printer |
| -> p | Prefix for positive values |
| -> α | |
| -> p |
Print a binary number in the binary numeral system.
binaryBits :: (Ord α, Num α, Bits α, Printer p) => α -> p #
Print a binary number in the binary numeral system. Negative values are prefixed with a minus sign.
Arguments
| :: (Ord α, Num α, Bits α, Printer p) | |
| => p | Prefix for negative values |
| -> p | Zero printer |
| -> p | Prefix for positive values |
| -> α | |
| -> p |
Print a binary number in the octal numeral system.
octalBits :: (Ord α, Num α, Bits α, Printer p) => α -> p #
Print a binary number in the octal numeral system. Negative values are prefixed with a minus sign.
Arguments
| :: (Ord α, Num α, Bits α, Printer p) | |
| => p | Prefix for negative values |
| -> p | Zero printer |
| -> p | Prefix for positive values |
| -> α | |
| -> p |
Print a binary number in the hexadecimal numeral system using lower case digits.
lowHexBits :: (Ord α, Num α, Bits α, Printer p) => α -> p #
Print a binary number in the hexadecimal numeral system using lower case digits. Negative values are prefixed with a minus sign.