轨道
/
Standard ML
Standard ML
/
练习
/
分段计时秒表
分段计时秒表

分段计时秒表

中等

简介

你一直为奔跑本身的快感而跑,没有日程表,没有计时器,只有双脚踏在路面上的声音。 但如今你加入了一支竞技跑团,事情变得严肃起来了。 训练按秒计时,每一瞬间都至关重要。 为了跟上节奏,你入手了_分秒必争的秒表_,一件时尚的高科技小玩意儿,它即将成为你最好的新朋友。

说明

你的任务是构建一个秒表,精确记录单圈时间。

秒表使用四个命令(start、stop、lap 和 reset)来记录:

  1. 当前单圈记录的时间
  2. 之前记录的单圈时间

能使用哪些命令取决于秒表处于哪种状态:

  1. Ready:初始状态
  2. Running:正在计时
  3. Stopped:未在计时
命令 起始状态 结束状态 效果
Start Ready Running 开始计时
Start Stopped Running 恢复计时
Stop Running Stopped 停止计时
Lap Running Running 把当前单圈加入之前的单圈,然后重置当前单圈
Reset Stopped Ready 重置当前单圈并清空之前的单圈

实现

完成本练习需要定义数据类型stopwatch,并实现以下函数:

  • newStopwatch
  • start
  • stop
  • lap
  • reset
  • advanceTime
  • getState
  • currentLap
  • total
  • previousLaps

你会看到一个已经写好的占位类型定义,但需要由你来定义这些函数,并创建一个有意义的类型。

通过 GitHub 编辑 链接将在新窗口或新标签页中打开
Standard ML Exercism

准备好开始 分段计时秒表 了吗?

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