oi-0.1.1: sample/catsSIO.hs
module Main where
import System.Environment
import System.IO.Strict
import Prelude hiding (readFile, writeFile)
main :: IO ()
main = do
args <- getArgs
main' args
main' :: [String] -> IO ()
main' args = run $ do
contents <- if not $ null args
then do
mapM readFile args
else do
files <- readFile "files"
mapM readFile (lines files)
writeFile "output.txt" (concatMap textproc contents)
textproc :: String -> String
textproc = unlines . take 1 . lines