Safe Haskell | None |
---|---|
Language | Haskell2010 |
Prelude
Description
Uses relude
as a default prelude.
Documentation
module Relude
inverseMap :: (Bounded a, Enum a, Ord k) => (a -> k) -> k -> Maybe a #
inverseMap f
creates a function that is the inverse of a given function
f
. It does so by constructing Map
for every value f a
. The
implementation makes sure that the Map
is constructed only once and then
shared for every call.
The complexity of reversed mapping though is O(logn).
Usually you want to use inverseMap
to inverse show
function.
>>>
data Color = Red | Green | Blue deriving (Show, Enum, Bounded)
>>>
parse = inverseMap show :: String -> Maybe Color
>>>
parse "Red"
Just Red>>>
parse "Black"
Nothing