純粋関数型言語を使う上でもっとも問題となるのはやはりIOだろう。 現在用いられている方法はおおよそ3つある。 ストリーム モナド 一意性型付け Haskellは主にモナドを使うわけであるが、 入出力が文字列に限定される場合はinteract*1で 簡単にモナド→ストリームの変換ができる。 そこで、コンソールアプリ習作の大定番、 数当てゲームをHaskellで実装してみた。 (実装してみたというか、ちょっと前に作ったネタだけど) ストリームIOである。 見てもらえば分かると思うが、むちゃくちゃ簡潔。 数当てゲームというものが見事に"記述"できている のが分かると思う。 今まで触った言語の中でもきわめて短い部類にはいるのではなかろうか。 module Main(main) where import Random main = do ans <- randomRIO (1,100) intera