Workshop/StartHaskell2/exercise9
『もっと入力、もっと出力』 練習問題
電卓コマンド
簡単な電卓コマンド calc を作ろう
calcコマンドは引数にサブコマンド文字列 add, sub, times, div と、さらに2つの数字を受け取る。
実行例
ヒント: 文字列から数字を読み取るには、以下のような関数がある。
数当てゲーム
ヒミツの数字を当てるプログラムを作ろう。
- プログラムは、最初に4桁のヒミツの数字を1つランダムに生成する。
- ユーザは、標準入力から数字を入力する。
- 入力された数字がヒミツの数字と等しいときは、正解の旨を表示して、プログラムを終了する。
- 入力された数字がヒミツの数字と異なるときは、以下の仕様に従った2つの数字の組を表示して 2 へ戻る。
入力された数字の各桁の数字について
- 桁と数字が、ヒミツの数字のそれと一致しているものの個数
- 数字が、ヒミツの数字のどこかの桁と一致しているものの個数
実行例
% ./guessnumber
% Hello, guess the number!
% > 1111
1 1
% > 2222
1 1
% > 3210
1 3
% > 0123
0 3
% > 1234
Correct!
echoコマンド
標準入力から入力された行を、そのまま標準出力に表示するコマンドを作ろう。(オプションは実装しなくてよい。)
余裕のある人は、ソースコードのバイト数を削って、どこまで短くなるか試してみよう。完成したら anarchy golf に投稿しよう。
Haskell版 UNIXコマンド集
以下のような、UNIXコマンドをHaskellで実装してみよう。
cat
head
tail
sort
uniq
ls
ヒント:ディレクトリ内のエントリ一覧を取得するには、 System.Directory の getDirectoryContents が使える。