Αν θέλεις να φτιάξεις κάτι με ένα Raspberry Pi, πιθανότατα θα χρειαστείς αντιστάτες. Για αυτήν την άσκηση, πρέπει να ξέρεις δύο πράγματα για αυτούς:
Για να ξεπεραστεί αυτό το πρόβλημα, οι κατασκευαστές τυπώνουν πάνω στους αντιστάτες χρωματιστές λωρίδες που δηλώνουν την τιμή αντίστασής τους. Κάθε λωρίδα έχει μια θέση και μια αριθμητική τιμή.
Οι δύο πρώτες λωρίδες ενός αντιστάτη έχουν ένα απλό σχήμα κωδικοποίησης: κάθε χρώμα αντιστοιχεί σε έναν μόνο αριθμό.
Σε αυτήν την άσκηση θα φτιάξεις ένα βοηθητικό πρόγραμμα, ώστε να μη χρειάζεται να θυμάσαι τις τιμές των λωρίδων.
Αυτά τα χρώματα κωδικοποιούνται ως εξής:
Ο στόχος αυτής της άσκησης είναι να φτιάξεις έναν τρόπο:
Οι μνημονικοί κανόνες συνδέουν τα χρώματα με τους αριθμούς, οι οποίοι, όταν αποθηκεύονται σε έναν πίνακα, τυγχάνει να αντιστοιχούν στη θέση τους μέσα στον πίνακα: Better Be Right Or Your Great Big Values Go Wrong.
Περισσότερες πληροφορίες για τη χρωματική κωδικοποίηση των αντιστατών μπορείς να βρεις στο άρθρο της Wikipedia για τον ηλεκτρονικό χρωματικό κώδικα.
Σε αυτή την άσκηση, πρέπει να ορίσεις σύνταξη για τα χρώματα χρησιμοποιώντας το πρόθεμα c*, π.χ. c*black.
Αυτή η σύνταξη πρέπει να επεκτείνεται σε χρόνο μεταγλώττισης στην αντίστοιχη τιμή κάθε χρώματος ως Fin 10, σύμφωνα με τις οδηγίες.
Με τον ίδιο τρόπο, πρέπει να ορίσεις σύνταξη για έναν πίνακα με όλες τις τιμές των χρωμάτων χρησιμοποιώντας το c*all.
Αυτή η εργασία πιθανότατα θα απαιτήσει να χρησιμοποιήσεις είτε σημειογραφίες είτε μακροεντολές. Ίσως θελήσεις να συμβουλευτείς μια αναφορά.
Επειδή η νέα σύνταξη επεκτείνεται σε χρόνο μεταγλώττισης, οποιοδήποτε test θα αποτύγχανε να μεταγλωττιστεί, εκτός αν οριστεί όλη η απαιτούμενη σύνταξη. Για αυτόν τον λόγο, αντί να βασιζόμαστε σε παραδοσιακά tests εκτέλεσης, ελέγχουμε όλες τις τιμές με θεωρήματα. Αν ένα θεώρημα περάσει τον έλεγχο τύπων, μπορείς να το θεωρήσεις επιτυχημένο test.
Αν δουλεύεις τοπικά ή στο διαδικτυακό playground της Lean, θα παίρνεις άμεση ανατροφοδότηση, μέσω του Lean InfoView, για το αν κάποιο θεώρημα πετυχαίνει ή αποτυγχάνει και γιατί αποτυγχάνει.
Γράψου στο Exercism για να μάθεις και να κατακτήσεις Lean με 100 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.