Safe Haskell | None |
---|---|
Language | Haskell2010 |
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 HasDigit a where
- class AsDigit a where
- class ManyDigit a where
- class D0 d where
- class D1 d where
- class D2 d where
- class D3 d where
- class D4 d where
- class D5 d where
- class D6 d where
- class D7 d where
- class D8 d where
- class D9 d where
- mod10 :: Integral a => a -> Digit
- absrem10 :: Integral a => a -> Digit
- divMod10 :: Integral a => a -> (a, Digit)
- parsedigit :: CharParsing p => p Digit
- digitQ :: QuasiQuoter
- (/+/) :: Digit -> Digit -> (Digit, Digit)
Documentation
A data type with ten nullary constructors.
:: 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
class AsDigit a where Source #
AsDigit Char Source # |
|
AsDigit Int Source # |
|
AsDigit Int8 Source # |
|
AsDigit Int16 Source # |
|
AsDigit Int32 Source # |
|
AsDigit Int64 Source # |
|
AsDigit Integer Source # |
|
AsDigit Word Source # |
|
AsDigit Digit Source # | |
Integral a => AsDigit (Identity a) Source # |
|
Integral a => AsDigit (Const * a b) Source # |
|
mod10 :: Integral a => a -> Digit Source #
Modulus with 10.
>>>
mod10 0
0
>>>
mod10 1
1
>>>
mod10 8
8
>>>
mod10 9
9
>>>
mod10 10
0
>>>
mod10 90
0
>>>
mod10 91
1
>>>
mod10 (-1)
9
>>>
mod10 (-12)
8
absrem10 :: Integral a => a -> Digit Source #
Absolute value of remainder 10.
>>>
absrem10 0
0
>>>
absrem10 1
1
>>>
absrem10 8
8
>>>
absrem10 9
9
>>>
absrem10 10
0
>>>
absrem10 90
0
>>>
absrem10 91
1
>>>
absrem10 (-1)
1
>>>
absrem10 (-12)
2
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)
parsedigit :: CharParsing p => p Digit Source #
digitQ :: QuasiQuoter Source #
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|]