| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Data.Digit
Description
A data type with ten nullary constructors [0-9] and combinators.
- data Digit
- foldDigit :: a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> Digit -> a
- class D0 d where
- x0 :: D0 d => d
- class D1 d where
- x1 :: D1 d => d
- class D2 d where
- x2 :: D2 d => d
- class D3 d where
- x3 :: D3 d => d
- class D4 d where
- x4 :: D4 d => d
- class D5 d where
- x5 :: D5 d => d
- class D6 d where
- x6 :: D6 d => d
- class D7 d where
- x7 :: D7 d => d
- class D8 d where
- x8 :: D8 d => d
- class D9 d where
- x9 :: D9 d => d
- digit :: Integral a => Prism' a Digit
- digitC :: Prism' Char Digit
- digitlist :: Integral a => Prism' a [Digit]
- mod10 :: Integral a => a -> Digit
- divMod10 :: Integral a => a -> (a, Digit)
- parsedigit :: (Monad p, CharParsing p) => p Digit
- parsedigitlist :: (Monad p, CharParsing p) => p [Digit]
- parsedigits :: (Monad p, CharParsing p) => p Digits
- parsedigitlist1 :: (Monad p, CharParsing p) => p (NonEmpty Digit)
- skipdigitlist :: (Monad p, CharParsing p) => p ()
- skipdigitlist1 :: (Monad p, CharParsing p) => p ()
- parsenotdigit :: (Monad p, CharParsing p) => p Char
- parsenotdigits :: (Monad p, CharParsing p) => p String
- parsenotdigits1 :: (Monad p, CharParsing p) => p String
- skipnotdigits :: (Monad p, CharParsing p) => p ()
- skipnotdigits1 :: (Monad p, CharParsing p) => p ()
- digitQ :: QuasiQuoter
- data Digits
- digits :: Integral a => Prism' a Digits
- digitsI :: Iso' [Digit] Digits
- digitsS :: Prism' String Digits
- (.+.) :: Digits -> Digits -> Digits
- (.*.) :: Digits -> Digits -> Digits
- mantissa :: Floating a => Digits -> a
Data type
A data type with ten nullary constructors.
Instances
Destructors
Arguments
| :: a | Zero. |
| -> a | One. |
| -> a | Two. |
| -> a | Three. |
| -> a | Four. |
| -> a | Five. |
| -> a | Six. |
| -> a | Seven. |
| -> a | Eight. |
| -> a | Nine. |
| -> Digit | The digit to fold. |
| -> a |
Catamorphism for Digit.
foldDigit q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 D0 == q0
foldDigit q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 D1 == q1
foldDigit q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 D2 == q2
foldDigit q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 D3 == q3
foldDigit q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 D4 == q4
foldDigit q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 D5 == q5
foldDigit q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 D6 == q6
foldDigit q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 D7 == q7
foldDigit q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 D8 == q8
foldDigit q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 D9 == q9
Prisms
digit :: Integral a => Prism' a Digit Source
A prism for using Int as Digit.
>>>5 ^? digitJust 5
>>>0 ^? digitJust 0
>>>9 ^? digitJust 9
>>>10 ^? digitNothing
>>>(-5) ^? digitNothing
>>>digit # D55
>>>digit # D99
>>>digit # D00
digitC :: Prism' Char Digit Source
A prism for using Char as Digit.
>>>'5' ^? digitCJust 5
>>>'0' ^? digitCJust 0
>>>'9' ^? digitCJust 9
>>>'a' ^? digitCNothing
>>>'@' ^? digitCNothing
>>>digitC # D5'5'
>>>digitC # D9'9'
>>>digitC # D0'0'
digitlist :: Integral a => Prism' a [Digit] Source
A prism for the list of digits in an integer
>>>1234 ^? digitlistJust [1,2,3,4]
>>>0 ^? digitlistJust []
>>>1 ^? digitlistJust [1]
>>>90 ^? digitlistJust [9,0]
>>>05 ^? digitlistJust [5]
>>>105 ^? digitlistJust [1,0,5]
>>>(-1) ^? digitlistNothing
λ> digitlist # [D0] 0
>>>digitlist # [D0, D1]1
>>>digitlist # [D1]1
>>>digitlist # [D1, D2, D3]123
>>>digitlist # [D1, D0, D3]103
>>>digitlist # [D1, D0, D3, D0]1030
mod operations
mod10 :: Integral a => a -> Digit Source
Modulus with 10.
>>>mod10 00
>>>mod10 11
>>>mod10 88
>>>mod10 99
>>>mod10 100
>>>mod10 900
>>>mod10 911
>>>mod10 (-1)9
divMod10 :: Integral a => a -> (a, Digit) Source
Division/modulus with 10.
>>>divMod10 0(0,0)
>>>divMod10 1(0,1)
>>>divMod10 8(0,8)
>>>divMod10 9(0,9)
>>>divMod10 10(1,0)
>>>divMod10 90(9,0)
>>>divMod10 91(9,1)
>>>divMod10 (-1)(-1,9)
Parsers
parsedigit :: (Monad p, CharParsing p) => p Digit Source
parsedigitlist :: (Monad p, CharParsing p) => p [Digit] Source
parsedigits :: (Monad p, CharParsing p) => p Digits Source
parsedigitlist1 :: (Monad p, CharParsing p) => p (NonEmpty Digit) Source
skipdigitlist :: (Monad p, CharParsing p) => p () Source
skipdigitlist1 :: (Monad p, CharParsing p) => p () Source
parsenotdigit :: (Monad p, CharParsing p) => p Char Source
parsenotdigits :: (Monad p, CharParsing p) => p String Source
parsenotdigits1 :: (Monad p, CharParsing p) => p String Source
skipnotdigits :: (Monad p, CharParsing p) => p () Source
skipnotdigits1 :: (Monad p, CharParsing p) => p () Source
Quasi-Quoters
A QuasiQuoter for any range of Digit.
- digitQ|4|
- :: Digit 4
named [digitQ|4|] = "four" named [digitQ|$x|] = "not four, " ++ show x ++ " instead"
mod10D x = let y = mod x 10 in [digitQ|$y|]
Digits
Instances