Gestiona 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 se lo preguntes, ese robot responderá con un nombre aleatorio nuevo.
Los nombres deben ser aleatorios: no deben seguir una secuencia predecible. Usar nombres aleatorios conlleva un riesgo de colisiones. Tu solución debe garantizar que todos los robots existentes tengan un nombre único.
Para completar este ejercicio, necesitas crear el tipo de datos Robot, como una variable mutable, y el tipo de datos RunState. También necesitas implementar las siguientes funciones:
initialStatemkRobotresetNamerobotNameEncontrarás una declaración de datos ficticia y firmas de tipo ya en su sitio, pero depende de ti definir las funciones y crear un tipo de datos significativo, un newtype o un sinónimo de tipo. Para modelar el estado, este ejercicio utiliza la mónada State. Más concretamente, combinamos la mónada State con la mónada IO usando los transformadores de mónada 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.