1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
module Main where

import Data.Char
import qualified Data.Text as T
import qualified Data.Text.IO as X

convert :: T.Text -> String
convert = unlines . (map convertLine) . T.lines

convertLine :: T.Text -> String
convertLine = unwords . map (convertWord . T.unpack) . T.words

convertWord :: String -> String
convertWord "" = ""
-- Warning: toUpper is not safe on all characters
convertWord (s:ss) = toUpper s : ss

main = do
	name <- X.readFile "file"
	putStr $ convert name