Haskell のお勉強 その4
catコマンドの作成。
まずは、テスト用テキストの作成。
ファイル名は、test_hoge
hoge0
hoge1
hoge2
hoge3
次に、cat.hsを作成
main = do cs<-getContents putStr cs
$ ghc cat.hs -o cat
catという実行ファイルが作成されるので、実行。
$ ./cat < test_hoge
結果が以下の用に出力される。
hoge0
hoge1
hoge2
hoge3
cat.hsを分解してみる。
main = do cs<-getContents putStr cs
上記のmainアクションには、
「do」、「cs」、「<-」、
「getContents」、「putStr」という要素がある。
「do」は、「cs<-getContents」と「putStr cs」の
2つのアクションを上から下に評価するために必要らしい。
これがないと、評価の順番が違うらしい。
「cs」は変数。
ここでは、getContentsのアクションが評価された時の
結果を格納するために用いている。
「<-」は、getContentsのアクションで得られた結果で
「cs」を束縛するためのもの。
C言語でいうと所の変数への代入か?
「getContents」は、「標準入力を読み込む」というアクション。
「putStr」は、引数として受け取った文字列を標準出力に出力する関数。