ファイルを読み込む

少し御無沙汰でした。

今回はファイルを呼んで表示してみようと思います。

他の言語では、基本的な機能で簡単に実現できますが、Haskellではこのような入出力などは、副作用のあつかいとなりちょっと面倒です。

入出力など順序が重要になるような処理では、モナドというものをつかって関数の順序を記述します。

import System
import System.IO
main = do
        fname <- getArgs -- 引数をfnameに
        h1 <- openFile (head fname) ReadMode  --ファイルを開く
        list <- hGetContents h1   --ファイルを全て読み込む
        putStrLn list    --listを表示
        hClose h1        --ファイルを閉じる

main関数を定義しているdoを含めた書き方がモナドをしている部分です。ちなみにhaskellでは「--」から行末まではコメントになります