Workshop/StartHaskell2/exercise9

『もっと入力、もっと出力』 練習問題

電卓コマンド

簡単な電卓コマンド calc を作ろう

calcコマンドは引数にサブコマンド文字列 add, sub, times, div と、さらに2つの数字を受け取る。 

実行例

ヒント: 文字列から数字を読み取るには、以下のような関数がある。


数当てゲーム

ヒミツの数字を当てるプログラムを作ろう。

  • プログラムは、最初に4桁のヒミツの数字を1つランダムに生成する。
  • ユーザは、標準入力から数字を入力する。
  • 入力された数字がヒミツの数字と等しいときは、正解の旨を表示して、プログラムを終了する。
  • 入力された数字がヒミツの数字と異なるときは、以下の仕様に従った2つの数字の組を表示して 2 へ戻る。

入力された数字の各桁の数字について

  • 桁と数字が、ヒミツの数字のそれと一致しているものの個数
  • 数字が、ヒミツの数字のどこかの桁と一致しているものの個数

実行例


echoコマンド

標準入力から入力された行を、そのまま標準出力に表示するコマンドを作ろう。(オプションは実装しなくてよい。)

余裕のある人は、ソースコードのバイト数を削って、どこまで短くなるか試してみよう。完成したら anarchy golf に投稿しよう。


Haskell版 UNIXコマンド集

以下のような、UNIXコマンドをHaskellで実装してみよう。

cat
head
tail
sort
uniq
ls

ヒント:ディレクトリ内のエントリ一覧を取得するには、 System.Directory の getDirectoryContents が使える。


Project Euler problem 8

Problem