Robotnév

Robotnév

Közepes

Utasítások

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.

Tippek

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:

  • initialState
  • mkRobot
  • resetName
  • robotName

Egy 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.


Forrás

Hibakeresési munkamenet Paul Blackwell-lel a gSchoolban.
Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
Haskell Exercism

Készen állsz elkezdeni a(z) Robotnév feladatot?

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.