Έτρεχες πάντα για την αδρεναλίνη: χωρίς προγράμματα, χωρίς χρονόμετρα, με μόνη συντροφιά τον ήχο των βημάτων σου στο πεζοδρόμιο. Μα τώρα που μπήκες σε μια ομάδα αγωνιστικού τρεξίματος, τα πράγματα σοβαρεύουν. Οι προπονήσεις χρονομετρούνται με ακρίβεια δευτερολέπτου και κάθε κλάσμα του δευτερολέπτου μετράει. Για να κρατήσεις τον ρυθμό, πήρες το Χρονόμετρο του Κλάσματος του Δευτερολέπτου, ένα κομψό γκάτζετ υψηλής τεχνολογίας που ετοιμάζεται να γίνει ο νέος σου καλύτερος φίλος.
Ο στόχος σου είναι να φτιάξεις ένα χρονόμετρο που να παρακολουθεί με ακρίβεια τους χρόνους των γύρων.
Το χρονόμετρο χρησιμοποιεί τέσσερις εντολές (start, stop, lap και reset) για να παρακολουθεί:
Ποιες εντολές μπορείς να χρησιμοποιήσεις εξαρτάται από την κατάσταση στην οποία βρίσκεται το χρονόμετρο:
| Εντολή | Αρχική κατάσταση | Τελική κατάσταση | Αποτέλεσμα |
|---|---|---|---|
| Start | Ready | Running | Ξεκινάει τη μέτρηση του χρόνου |
| Start | Stopped | Running | Συνεχίζει τη μέτρηση του χρόνου |
| Stop | Running | Stopped | Σταματάει τη μέτρηση του χρόνου |
| Lap | Running | Running | Προσθέτει τον τρέχοντα γύρο στους προηγούμενους γύρους και μετά μηδενίζει τον τρέχοντα γύρο |
| Reset | Stopped | Ready | Μηδενίζει τον τρέχοντα γύρο και διαγράφει τους προηγούμενους γύρους |
Για να ολοκληρώσεις αυτή την άσκηση, πρέπει να ορίσεις τον τύπο δεδομένων stopwatch και να υλοποιήσεις τις συναρτήσεις:
Θα βρεις ήδη έναν εικονικό ορισμό τύπου στη θέση του, αλλά από εσένα εξαρτάται να ορίσεις τις συναρτήσεις και να δημιουργήσεις έναν τύπο δεδομένων με νόημα.
Γράψου στο Exercism για να μάθεις και να κατακτήσεις Standard ML με 90 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.