Relógio

Relógio

Médio

Instruções

Implementa um relógio que lida com horas, sem datas.

Deves conseguir adicionar e subtrair minutos ao relógio.

Dois relógios que representam a mesma hora devem ser iguais entre si.

Dicas

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

Para completares este exercício, tens de definir o tipo de dados Clock, acrescentar uma instância de Eq e implementar as funções:

  • addDelta
  • fromHourMin
  • toString

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

fromHourMin recebe uma hora e um minuto e devolve uma instância de Clock com essas horas e minutos.

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

Vais encontrar uma declaração de dados provisória e assinaturas de tipos já presentes, mas cabe-te a ti definir as funções e criar um tipo de dados, um newtype ou um sinónimo de tipo com sentido.

Se precisares de ajuda para começar com os tipos, dá uma vista de olhos a:


Fonte

Sessão de programação em par com Erin Drummond
Editar via GitHub A ligação abre numa nova janela ou separador
Haskell Exercism

Estás pronto para começar Relógio?

Inscreve-te no Exercism para aprenderes e dominares Haskell com 107 exercícios, e mentoria humana real, tudo grátis.