Tracks
/
Haskell
Haskell
/
Ejercicios
/
Nombre del robot
Nombre del robot

Nombre del robot

Intermedia

Instrucciones

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.

Pistas

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:

  • initialState
  • mkRobot
  • resetName
  • robotName

Encontrará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.


Fuente

Una sesión de depuración con Paul Blackwell en gSchool.
Editar en GitHub El enlace se abre en una ventana o una pestaña nuevas
Haskell Exercism

¿Todo listo para empezar Nombre del robot?

Regístrate en Exercism para aprender y dominar Haskell con 107 ejercicios y mentoría humana real, todo gratis.