diff options
Diffstat (limited to 'src/Utils/String.hs')
-rw-r--r-- | src/Utils/String.hs | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/Utils/String.hs b/src/Utils/String.hs new file mode 100644 index 0000000..44cdf03 --- /dev/null +++ b/src/Utils/String.hs @@ -0,0 +1,21 @@ +module Utils.String + ( capitalizeWords + , capitalizeFirstWord + , capitalizeWord + ) where + +import Data.Char + +capitalizeWords :: String -> String +capitalizeWords = unwords . map capitalizeWord . words + +capitalizeFirstWord :: String -> String +capitalizeFirstWord = unwords . mapFirst capitalizeWord . words + +capitalizeWord :: String -> String +capitalizeWord [] = [] +capitalizeWord (x:xs) = toUpper x : map toLower xs + +mapFirst :: (a -> a) -> [a] -> [a] +mapFirst _ [] = [] +mapFirst f (x:xs) = f x : xs |