Trilhas
/
Haskell
Haskell
/
Exercícios
/
Nome do robô
Nome do robô

Nome do robô

Médio

Instruções

Gerencie as configurações de fábrica do robô.

Quando um robô sai da linha de montagem, ele não tem nome.

Na primeira vez que você liga um robô, um nome aleatório é gerado no formato de duas letras maiúsculas seguidas de três dígitos, como RX837 ou BC811.

De vez em quando, precisamos restaurar um robô para as configurações de fábrica. Isso apaga o nome dele. Na próxima vez que você perguntar, esse robô vai responder com um novo nome aleatório.

Os nomes precisam ser aleatórios: eles não devem seguir uma sequência previsível. Usar nomes aleatórios implica o risco de colisões. Sua solução precisa garantir que todo robô existente tenha um nome único.

Dicas

Para completar este exercício, você precisa criar o tipo de dados Robot, como uma variável mutável, e o tipo de dados RunState. Você também precisa implementar as seguintes funções:

  • initialState
  • mkRobot
  • resetName
  • robotName

Você vai encontrar uma declaração de dados fictícia e as assinaturas de tipo já prontas, mas cabe a você definir as funções e criar um tipo de dados, um newtype ou um sinônimo de tipo que faça sentido. Para modelar o estado, este exercício usa a mônada State. Mais especificamente, combinamos a mônada State com a mônada IO usando os transformadores de mônada StateT. Todos os testes são executados com initialState como o estado passado para evalStateT.


Fonte

Uma sessão de depuração com Paul Blackwell na gSchool.
Editar via GitHub O link abre em uma nova janela ou aba
Haskell Exercism

Tudo pronto para começar Nome do robô?

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