Administra la configuración de fábrica de un robot.
Cuando un robot sale de la fábrica, no tiene nombre.
La primera vez que enciendes un robot, se genera un nombre aleatorio con el formato de dos letras mayúsculas seguidas de tres dígitos, como RX837 o BC811.
De vez en cuando hay que restablecer un robot a su configuración de fábrica, lo que significa que su nombre se borra. La próxima vez que lo consultes, ese robot responderá con un nuevo nombre aleatorio.
Los nombres deben ser aleatorios: no deben seguir una secuencia predecible. Usar nombres aleatorios implica un riesgo de colisiones. Tu solución debe asegurar que cada robot existente tenga un nombre único.
Para completar este ejercicio, necesitas crear el tipo de dato Robot,
como una variable mutable, y el tipo de dato RunState. También necesitas
implementar las siguientes funciones:
initialStatemkRobotresetNamerobotNameEncontrarás una declaración de datos ficticia y las firmas de tipo ya listas,
pero depende de ti definir las funciones y crear un tipo de dato,
un newtype o un sinónimo de tipo que tenga sentido. Para modelar el estado, este
ejercicio usa la mónada
State.
Más específicamente, combinamos la mónada State con la mónada IO usando
los transformadores de mónadas StateT.
Todas las pruebas se ejecutan con initialState como el estado que se pasa a evalStateT.
Regístrate en Exercism para aprender y dominar Haskell con 107 ejercicios y mentoría humana real, todo gratis.