Tracks
/
Haskell
Haskell
/
Übungen
/
Robotername
Robotername

Robotername

Mittel

Anleitung

Verwalte die Einstellungen der Roboterfabrik.

Wenn ein Roboter das Werk verlässt, hat er noch keinen Namen.

Wenn du einen Roboter zum ersten Mal einschaltest, wird ein zufälliger Name erzeugt: zwei Großbuchstaben gefolgt von drei Ziffern, zum Beispiel RX837 oder BC811.

Ab und zu müssen wir einen Roboter auf seine Werkseinstellungen zurücksetzen. Dabei wird sein Name gelöscht. Wenn du ihn das nächste Mal fragst, antwortet er mit einem neuen zufälligen Namen.

Die Namen müssen zufällig sein und dürfen keinem vorhersehbaren Muster folgen. Zufällige Namen bringen die Gefahr von Kollisionen mit sich. Deine Lösung muss sicherstellen, dass jeder vorhandene Roboter einen eindeutigen Namen hat.

Hinweise

Um diese Übung zu lösen, musst du den Datentyp Robot als veränderliche Variable und den Datentyp RunState anlegen. Außerdem musst du die folgenden Funktionen implementieren:

  • initialState
  • mkRobot
  • resetName
  • robotName

Eine Dummy-Datendeklaration und die Typsignaturen findest du bereits vor, aber es liegt an dir, die Funktionen zu definieren und einen aussagekräftigen Datentyp, ein Newtype oder ein Typsynonym anzulegen. Um den Zustand zu modellieren, verwendet diese Übung die State-Monade. Genauer gesagt kombinieren wir die State-Monade mit der IO-Monade mithilfe der StateT-Monadentransformer. Alle Tests werden mit initialState als dem Zustand ausgeführt, der in evalStateT hineingegeben wird.


Quelle

Eine Debugging-Sitzung mit Paul Blackwell bei gSchool.
Über GitHub bearbeiten Der Link öffnet sich in einem neuen Fenster oder Tab
Haskell Exercism

Bereit, mit Robotername zu starten?

Melde dich bei Exercism an, um Haskell mit 107 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.