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.
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:
initialStatemkRobotresetNamerobotNameEine 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.
Melde dich bei Exercism an, um Haskell mit 107 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.