時計

時計

中級

説明

日付を持たない時刻を扱う時計を実装しましょう。

その時計では、分を足したり引いたりできるようにします。

同じ時刻を表す2つの時計は、互いに等しくなければなりません。

ヒント

"00:00"から"23:59"まで進む24時間制の時計です。

この演習を完了するには、データ型Clockを定義し、Eqインスタンスを追加し、次の関数を実装する必要があります。

  • addDelta
  • fromHourMin
  • toString

addDeltaは、時間と分で表された期間を、Clockのインスタンスで表される時刻に加えます。

fromHourMinは、時と分を受け取り、その時と分を持つClockのインスタンスを返します。

toStringは、Clockのインスタンスを受け取り、"08:03"や"22:35"のように0で埋めた形式で、時計の文字列表現を返します。

ダミーのデータ宣言と型シグネチャーはすでに用意されていますが、関数を定義し、意味のあるデータ型、newtype、型シノニムを作る必要があります。

型の扱いで困ったら、次の記事を参考にしてください。


出典

Erin Drummondとのペアプログラミングセッション
GitHubで編集する リンクは新しいウィンドウまたはタブで開きます
Haskell Exercism

時計を始める準備はできましたか?

Exercismに登録すれば、107個の演習、そして本物の人間によるメンタリングとともに、Haskellを学んでマスターできます。すべて無料です。