| 123456789101112131415161718192021222324252627 |
- import System.Environment
- mapFilter :: (a -> Maybe b) -> [a] -> [b]
- mapFilter fn = worker . map fn
- where
- worker (Nothing : rest) = worker rest
- worker ((Just x) : rest) = x : worker rest
- worker [] = []
- translate :: String -> [String] -> [String]
- translate language = mapFilter worker
- where
- worker ('|':x:y:'>':line)
- | [x,y] == language = Just line
- | otherwise = Nothing
- worker line = Just line
-
- main :: IO ()
- main = do
- args <- getArgs
- case args of
- [language] -> interact (unlines . translate (language) . lines)
- _ -> putStrLn "translator language"
|