catコマンドだニャー。

とある焼き肉屋で1皿100円のカルビを食べた。いろんな意味で100円だった。
本に従ってcatコマンドをHaskellで作る。
至って簡単。こんな感じ。

main = do cs <- getContents
          putStr cs

これで標準入力で受け取った値を標準出力に出力することが出来る。
getContentsが標準入力を受け取り、putStrで出力する。getContentsはアクション。アクションが何かは全然わかっていないけど、とりあえず置いておく。
doは複数のアクションをまとめる。上から順に実行される。
そして見えないところに重要な点が。
例えば、

main = do cs <- getContents
                putStr cs

のようにしてコンパイルすると、

The last statement in a 'do' construct must be an expression

なんてしかられてしまう。
複数の式のインデントを揃えることで、式が同じブロックに属している、ということらしい。


ふつうのHaskellプログラミング ふつうのプログラマのための関数型言語入門

ふつうのHaskellプログラミング ふつうのプログラマのための関数型言語入門