引数が与えられたらそれをファイル名と見なしてファイルを読み込み,与えられなければ標準入力から読み込む。いわゆるフィルタとしても働くプログラム。こんな感じでいいか?
module Main (main) where import System main :: IO () main = do args <- getArgs contents <- if (not.null) args then readFile $ head args else getContents putStr contents
引数にファイル名を指定
D:\>runghc catFile.hs hello.txt Hello, Haskell.
標準入力から
D:\>runghc catFile.hs < hello.txt Hello, Haskell.
パイプ経由
D:\>type hello.txt | runghc catFile.hs Hello, Haskell.