Kezeld a robotgyár beállításait.
Amikor egy robot legördül a gyártósorról, még nincs neve.
Amikor először bekapcsolsz egy robotot, egy véletlenszerű név generálódik: két nagybetű, majd három számjegy, például RX837 vagy BC811.
Időnként vissza kell állítanunk egy robotot a gyári beállításaira, ami azt jelenti, hogy a neve törlődik. Amikor legközelebb rákérdezel, az a robot egy új véletlenszerű névvel válaszol.
A neveknek véletlenszerűnek kell lenniük: nem követhetnek kiszámítható sorrendet. A véletlenszerű nevek használata ütközés kockázatával jár. A megoldásodnak biztosítania kell, hogy minden létező robot neve egyedi legyen.
A feladat megoldásához létre kell hoznod a Robot adattípust egy módosítható változóként, valamint a RunState adattípust. Emellett az alábbi függvényeket is meg kell valósítanod:
initialStatemkRobotresetNamerobotNameEgy dummy adatdeklarációt és a típusszignatúrákat már megtalálod a helyükön, de a függvények definiálása és egy értelmes adattípus, newtype vagy típusszinonima létrehozása rajtad áll. Az állapot modellezéséhez ez a feladat a State monadot használja. Pontosabban a State monadot az IO monaddal kombináljuk a StateT monadtranszformátorok segítségével. Minden teszt úgy fut le, hogy az initialState az evalStateT-nek átadott állapot.
Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Haskell nyelvet 107 feladat segítségével, valódi emberi mentorálással, mindez ingyen.