Διαδρομές
/
Haskell
Haskell
/
Ασκήσεις
/
Όνομα ρομπότ
Όνομα ρομπότ

Όνομα ρομπότ

Μέτριο

Οδηγίες

Διαχειρίσου τις ρυθμίσεις του εργοστασίου ρομπότ.

Όταν ένα ρομπότ βγαίνει από τη γραμμή παραγωγής, δεν έχει όνομα.

Την πρώτη φορά που ενεργοποιείς ένα ρομπότ, δημιουργείται ένα τυχαίο όνομα με τη μορφή δύο κεφαλαίων γραμμάτων ακολουθούμενων από τρία ψηφία, όπως RX837 ή BC811.

Πού και πού χρειάζεται να επαναφέρουμε ένα ρομπότ στις εργοστασιακές του ρυθμίσεις, που σημαίνει ότι το όνομά του σβήνεται. Την επόμενη φορά που θα ρωτήσεις, αυτό το ρομπότ θα απαντήσει με ένα νέο τυχαίο όνομα.

Τα ονόματα πρέπει να είναι τυχαία: δεν πρέπει να ακολουθούν μια προβλέψιμη σειρά. Η χρήση τυχαίων ονομάτων σημαίνει κίνδυνο συγκρούσεων. Η λύση σου πρέπει να διασφαλίζει ότι κάθε υπάρχον ρομπότ έχει μοναδικό όνομα.

Υποδείξεις

Για να ολοκληρώσεις αυτή την άσκηση, πρέπει να δημιουργήσεις τον τύπο δεδομένων Robot, ως μεταβλητή που μπορεί να αλλάξει, και τον τύπο δεδομένων RunState. Πρέπει επίσης να υλοποιήσεις τις παρακάτω συναρτήσεις:

  • initialState
  • mkRobot
  • resetName
  • robotName

Θα βρεις μια εικονική δήλωση δεδομένων και υπογραφές τύπων να υπάρχουν ήδη, αλλά εξαρτάται από εσένα να ορίσεις τις συναρτήσεις και να δημιουργήσεις έναν τύπο δεδομένων με νόημα, ένα newtype ή ένα συνώνυμο τύπου. Για να μοντελοποιήσει την κατάσταση, αυτή η άσκηση χρησιμοποιεί τη μονάδα State. Πιο συγκεκριμένα, συνδυάζουμε τη μονάδα State με τη μονάδα IO χρησιμοποιώντας τους μετασχηματιστές μονάδων StateT. Όλα τα τεστ εκτελούνται με το initialState ως την κατάσταση που τροφοδοτείται στο evalStateT.


Πηγή

Μια συνεδρία debugging με τον Paul Blackwell στο gSchool.
Επεξεργασία μέσω GitHub Ο σύνδεσμος ανοίγει σε νέο παράθυρο ή καρτέλα
Haskell Exercism

Έτοιμος να ξεκινήσεις την άσκηση Όνομα ρομπότ;

Γράψου στο Exercism για να μάθεις και να κατακτήσεις Haskell με 107 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.