Parcours
/
Standard ML
Standard ML
/
Exercices
/
Chronomètre de précision
Chronomètre de précision

Chronomètre de précision

Moyen

Introduction

Tu as toujours couru pour le frisson, sans emploi du temps, sans minuteur, juste le bruit de tes pieds sur le bitume. Mais depuis que tu as rejoint une équipe de course compétitive, les choses deviennent sérieuses. Les séances d'entraînement sont chronométrées à la seconde près, et chaque fraction de seconde compte. Pour tenir le rythme, tu t'es procuré le Chronomètre à fraction de seconde, un gadget high-tech au design épuré qui s'apprête à devenir ton nouveau meilleur ami.

Instructions

Ta mission est de construire un chronomètre pour suivre précisément les temps au tour.

Le chronomètre utilise quatre commandes (start, stop, lap et reset) pour suivre :

  1. Le temps mesuré du tour en cours
  2. Les temps au tour enregistrés précédemment

Les commandes que l'on peut utiliser dépendent de l'état dans lequel se trouve le chronomètre :

  1. Prêt : état initial
  2. En marche : le temps est mesuré
  3. Arrêté : le temps n'est pas mesuré
Commande État initial État final Effet
Start Prêt En marche Commence à mesurer le temps
Start Arrêté En marche Reprend la mesure du temps
Stop En marche Arrêté Arrête la mesure du temps
Lap En marche En marche Ajoute le tour en cours aux tours précédents, puis réinitialise le tour en cours
Reset Arrêté Prêt Réinitialise le tour en cours et efface les tours précédents

Implémentation

Pour terminer cet exercice, tu dois définir le type de données stopwatch et implémenter les fonctions :

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

Tu trouveras déjà une définition de type factice en place, mais c'est à toi de définir les fonctions et de créer un type de données qui a du sens.

Modifie via GitHub Le lien s'ouvre dans une nouvelle fenêtre ou un nouvel onglet
Standard ML Exercism

Prêt à commencer Chronomètre de précision ?

Inscris-toi sur Exercism pour apprendre et maîtriser Standard ML avec 90 exercices, et un vrai mentorat humain, le tout gratuitement.