Reloj

Reloj

Intermedia

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 datos 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 toma una hora y unos minutos y devuelve una instancia de Clock con esas horas y esos minutos.

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

Encontrarás una declaración de datos ficticia y las firmas de tipo ya en su lugar, pero depende de ti definir las funciones y crear un tipo de datos con sentido, un newtype o un sinónimo de tipo.

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 una pestaña nuevas
Haskell Exercism

¿Todo listo para empezar Reloj?

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