時計

時計

中級

説明

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

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

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

実装

この演習のテストでは、Pyretのdata declarationを使って時計を実装することを想定しています。 data declarationsに馴染みがない場合は、公式ドキュメントから始めるのがよいでしょう。

この演習のなかでは、Clockというデータバリアントで作られた値どうしを比較することになります。 時計の時間と分はどちらの向きにも繰り上がったり繰り下がったりするため、次の組み合わせは時計では同じ時刻を表します。1時間1分、0時間61分、25時間1分、2時間-59分です。 Pyretのisテスト演算子は構造的等価性を使うので、デフォルトではこれらの組み合わせがどれも等しいとはみなされません。 そのため、Clockデータバリアントの値どうしで時刻を比較するには、独自の等価メソッドを定義する必要があります。 Pyretが等価性をどのように扱うかに馴染みがない場合は、等価性についての公式ドキュメントを確認してください。


出典

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

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

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