实现一个时钟,它能处理时间,但不涉及日期。
你应该能够给它加上或减去分钟数。
两个表示同一时间的时钟应该彼此相等。
本练习的测试期望你的时钟使用 Pyret 中的data declaration来实现。如果你不熟悉 data declaration,可以先看看官方文档。
作为本练习的一部分,你会比较由Clock数据变体构造出来的值。因为时钟的小时和分钟可以向任一方向进位,以下组合在时钟上是同一个时间:1 小时 1 分钟、0 小时 61 分钟、25 小时 1 分钟和 2 小时 -59 分钟。Pyret 的is测试运算符使用结构相等,因此默认情况下这些组合全都不会相等。为此,你需要自己定义一个相等方法,用来在Clock数据变体的值之间比较时间。如果你不熟悉 Pyret 如何处理相等性,可以看看关于 equality 的官方文档。