Você sempre correu pela emoção: sem horários, sem cronômetros, só pelo som dos seus pés no asfalto. Mas agora que você entrou para uma equipe de corrida competitiva, as coisas estão ficando sérias. As sessões de treino são cronometradas ao segundo, e cada fração de segundo faz diferença. Para acompanhar esse ritmo, você comprou o Cronômetro de Fração de Segundo: um aparelho elegante e de alta tecnologia que está prestes a se tornar seu novo melhor amigo.
Sua tarefa é construir um cronômetro para acompanhar com precisão os tempos de volta.
O cronômetro usa quatro comandos (start, stop, lap e reset) para acompanhar:
Quais comandos podem ser usados depende do estado em que o cronômetro está:
| Comando | Estado inicial | Estado final | Efeito |
|---|---|---|---|
| Start | Pronto | Em execução | Começa a contar o tempo |
| Start | Parado | Em execução | Retoma a contagem do tempo |
| Stop | Em execução | Parado | Para de contar o tempo |
| Lap | Em execução | Em execução | Adiciona a volta atual às voltas anteriores e depois zera a volta atual |
| Reset | Parado | Pronto | Zera a volta atual e apaga as voltas anteriores |
Para completar este exercício, você precisa definir o tipo de dados stopwatch e implementar as funções:
Você vai encontrar uma definição de tipo provisória já pronta no código, mas cabe a você definir as funções e criar um tipo de dados que faça sentido.
Crie sua conta no Exercism para aprender e dominar Standard ML com 90 exercícios e mentoria humana de verdade, tudo de graça.