File tree 1 file changed +26
-1
lines changed
1 file changed +26
-1
lines changed Original file line number Diff line number Diff line change @@ -14,6 +14,8 @@ module Data.Int
14
14
, base36
15
15
, fromStringAs
16
16
, toStringAs
17
+ , Parity (..)
18
+ , parity
17
19
, even
18
20
, odd
19
21
, pow
@@ -77,6 +79,29 @@ foreign import toNumber :: Int -> Number
77
79
fromString :: String -> Maybe Int
78
80
fromString = fromStringAs (Radix 10 )
79
81
82
+ -- | A type for describing whether an integer is even or odd.
83
+ data Parity = Even | Odd
84
+
85
+ derive instance eqParity :: Eq Parity
86
+ derive instance ordParity :: Ord Parity
87
+
88
+ instance showParity :: Show Parity where
89
+ show Even = " Even"
90
+ show Odd = " Odd"
91
+
92
+ instance boundedParity :: Bounded Parity where
93
+ bottom = Even
94
+ top = Odd
95
+
96
+ -- | Returns whether an `Int` is `Even` or `Odd`.
97
+ -- |
98
+ -- | ``` purescript
99
+ -- | parity 0 == Even
100
+ -- | parity 1 == Odd
101
+ -- | ```
102
+ parity :: Int -> Parity
103
+ parity n = if even n then Even else Odd
104
+
80
105
-- | Returns whether an `Int` is an even number.
81
106
-- |
82
107
-- | ``` purescript
@@ -90,7 +115,7 @@ even x = x .&. 1 == 0
90
115
-- |
91
116
-- | ``` purescript
92
117
-- | odd 0 == false
93
- -- | odd 1 == false
118
+ -- | odd 1 == true
94
119
-- | ```
95
120
odd :: Int -> Boolean
96
121
odd x = x .&. 1 /= 0
You can’t perform that action at this time.
0 commit comments