Reloj

Reloj

Media

Instrucciones

Implementa un reloj que maneje horas sin fechas.

Debes poder sumarle y restarle minutos.

Dos relojes que representen la misma hora deben ser iguales entre sí.

Pistas

Es un reloj de 24 horas que va de «00:00» a «23:59».

Para completar este ejercicio necesitas definir el tipo de dato Clock, añadir una instancia de Eq e implementar las funciones:

  • addDelta
  • fromHourMin
  • toString

addDelta suma una duración, expresada en horas y minutos, a una hora dada, representada por una instancia de Clock.

fromHourMin recibe una hora y unos minutos y devuelve una instancia de Clock con esa hora y esos minutos.

toString recibe una instancia de Clock y devuelve una representación como string del reloj, en formato con relleno de ceros, como «08:03» o «22:35».

Encontrarás una declaración de datos ficticia y las firmas de tipo ya preparadas, pero te toca a ti definir las funciones y crear un tipo de dato, un newtype o un sinónimo de tipo con sentido.

Si necesitas ayuda para empezar con los tipos, echa un vistazo a:


Fuente

Sesión de programación en pareja con Erin Drummond
Editar en GitHub El enlace se abre en una ventana o pestaña nueva
Haskell Exercism

¿Listo para empezar Reloj?

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