时钟

时钟

中等

说明

实现一个时钟,它能处理时间,但不涉及日期。

你应该能够给它加上或减去分钟数。

两个表示同一时间的时钟应该彼此相等。

提示

这是一个 24 小时制的时钟,从 "00:00" 走到 "23:59"。

要完成这道练习,你需要定义数据类型Clock,添加一个Eq实例,并实现以下函数:

  • addDelta
  • fromHourMin
  • toString

addDelta把一个以小时和分钟表示的时长加到给定的时间上,这个时间用Clock实例表示。

fromHourMin接受小时和分钟,返回一个包含这些小时和分钟的Clock实例。

toString接受一个Clock实例,返回该时钟的字符串表示,采用补零格式,如 "08:03" 或 "22:35"。

文件中已经放好了一个占位的数据声明和类型签名,但函数需要由你来定义,并创建一个有意义的数据类型、newtype 或类型同义词。

如果你需要类型方面的入门帮助,可以看看:


来源

与 Erin Drummond 的一次结对编程会话
通过 GitHub 编辑 链接将在新窗口或新标签页中打开
Haskell Exercism

准备好开始 时钟 了吗?

注册 Exercism,借助 107 个练习 和真人导师指导,学习并掌握 Haskell,全部免费。