Relógio

Relógio

Médio

Instruções

Implemente um relógio que lida com horários sem datas.

Você deve conseguir somar e subtrair minutos a ele.

Dois relógios que representam o mesmo horário devem ser iguais entre si.

Dicas

É um relógio de 24 horas que vai de "00:00" a "23:59".

Para completar este exercício, você precisa definir o tipo de dado Clock, adicionar uma instância de Eq e implementar as funções:

  • addDelta
  • fromHourMin
  • toString

addDelta adiciona uma duração, expressa em horas e minutos, a um horário, representado por uma instância de Clock.

fromHourMin recebe uma hora e um minuto e retorna uma instância de Clock com essa hora e esse minuto.

toString recebe uma instância de Clock e retorna uma representação em string do relógio, no formato com zeros à esquerda, como "08:03" ou "22:35".

Você vai encontrar uma declaração de dados fictícia e assinaturas de tipo já prontas, mas cabe a você definir as funções e criar um tipo de dado, um newtype ou um sinônimo de tipo que faça sentido.

Se você precisar de ajuda para começar com tipos, dê uma olhada em:


Fonte

Sessão de pareamento com Erin Drummond
Editar via GitHub O link abre em uma nova janela ou aba
Haskell Exercism

Tudo pronto para começar Relógio?

Crie sua conta no Exercism para aprender e dominar Haskell com 107 exercícios e mentoria humana de verdade, tudo de graça.