トラック
/
Standard ML
Standard ML
/
演習
/
一瞬のストップウォッチ
一瞬のストップウォッチ

一瞬のストップウォッチ

中級

はじめに

これまでは、ただ走ることの楽しさだけで走ってきたのではないでしょうか。スケジュールもタイマーもなく、あったのは路面を打つ足音だけでした。 でも、競技として走るチームに加わった今、状況は真剣そのものです。 練習は1秒単位で計測され、ほんの一瞬の差が勝敗を分けます。 そのペースについていくために手に入れたのが、Split-Second Stopwatch です。洗練されたハイテクなガジェットで、これから新しい親友になってくれるでしょう。

説明

この演習では、ラップタイムを正確に記録するストップウォッチを作ります。

ストップウォッチは4つのコマンド(start、stop、lap、reset)を使って、次の2つを記録します。

  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を学んでマスターできます。すべて無料です。