ここから先は、次のような仕様のコマンドラインアプリケーションを作ることをゴールとします。
- 以下のような内容の、1行ごとにタブ区切りで「分類(タブ文字や改行を含まない文字列)」と「金額(0以上の整数)」が書かれたファイルの名前を(0個以上)引数として受け取る(
<tab>
はタブ文字、<newline>
は改行文字を表す)。分類<tab>1234<newline> ほかの分類<tab>9876<newline> さらにほかの分類<tab>3141592<newline>
- ファイルを読み、「分類」ごとの「金額」の合計を計算し、出力する。
- 同じ「分類」の行が受け取ったファイル内に複数存在していることがあるので、「分類」ごとの「金額」の合計を知りたい。
そのために以下の課題を解いて、Haskellの初歩を身につけましょう。
- 複数の命令を並べる
- 入力の取得
- 入力を数値に変換する
- タプルから値を取り出す
- 入力した値の内容に応じて処理を分ける
case
式
- エラーを出す・無理矢理コンパイルを通す
- moduleをimportする
- base以外のパッケージを利用する
- 処理を繰り返し実行する
- メモ: 再帰関数に入るか、それとも高階関数をするか
- 連想配列を扱う
さらに、作ったアプリケーションの改善を通して、以下のことを学びます。
- 自分で型を定義する
- エラーを型宣言で明示する