import qualified Data.ByteString.Char8 as S import System.Environment import Control.Monad main :: IO () main = do args <- getArgs when (null args) $ tac =<< S.getContents forM_ args $ tac <=< S.readFile where tac = S.putStr . S.intercalate nl . reverse . S.split '\n' nl = S.pack "\n"