From 28cfbde7ec9ce360f5d9f9b87b0a4ce6f4d581b9 Mon Sep 17 00:00:00 2001 From: Tissevert Date: Wed, 26 Aug 2020 11:40:09 +0200 Subject: [PATCH] Make number parsing case-independent --- src/Data/RomanNum.hs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Data/RomanNum.hs b/src/Data/RomanNum.hs index 731da2e..f12b3fe 100644 --- a/src/Data/RomanNum.hs +++ b/src/Data/RomanNum.hs @@ -8,6 +8,7 @@ module Data.RomanNum ( , validate ) where +import Data.Char (toUpper) import Data.Map (Map, (!)) import qualified Data.Map as Map (fromList) import Text.Read (readMaybe) @@ -55,7 +56,7 @@ validate :: String -> Bool validate = either (\_ -> False) (\_ -> True) . parse readDigit :: Char -> Either String Int -readDigit c = maybe errMsg (Right . (values !)) $ readMaybe [c] +readDigit c = maybe errMsg (Right . (values !)) $ readMaybe [toUpper c] where errMsg = Left $ "Not a roman digit: «" ++ c:"»"