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.
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:
initialStatemkRobotresetNamerobotNameVocê 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.
Crie sua conta no Exercism para aprender e dominar Haskell com 107 exercícios e mentoria humana de verdade, tudo de graça.