Se você quer construir algo usando um Raspberry Pi, provavelmente vai usar resistores. Para este exercício, você só precisa saber três coisas sobre eles:
Cada resistor tem um valor de resistência.
Resistores são pequenos. Tão pequenos que, se você imprimisse o valor da resistência neles, seria difícil de ler. Para contornar esse problema, os fabricantes imprimem faixas codificadas por cores nos resistores para indicar seus valores de resistência.
Cada faixa funciona como um dígito de um número. Por exemplo, se eles imprimissem uma faixa brown (valor 1) seguida por uma faixa green (valor 5), isso corresponderia ao número 15. Neste exercício, você vai criar um programa útil para não precisar lembrar os valores das faixas. O programa receberá 3 cores como entrada e retornará o valor correto, em ohms. As faixas de cores são codificadas da seguinte forma:
black: 0
brown: 1
red: 2
orange: 3
yellow: 4
green: 5
blue: 6
violet: 7
grey: 8
white: 9
No Duo de Cores de Resistores, você decodificou as duas primeiras cores.
Por exemplo: orange-orange deu o valor principal 33.
A terceira cor representa quantos zeros precisam ser adicionados ao valor principal.
O valor principal mais os zeros nos dá um valor em ohms.
Para o exercício, não importa o que ohms realmente são.
Por exemplo:
(Se você curte matemática, talvez queira pensar nos zeros como expoentes de 10. Se não curte, fique com os zeros. É realmente a mesma coisa, só que em linguagem comum em vez de jargão matemático.)
Este exercício é sobre traduzir as cores para um rótulo:
"... ohms"
Então, uma entrada de "orange", "orange", "black" deve retornar:
"33 ohms"
Quando chegamos a resistores maiores, um prefixo métrico é usado para indicar uma magnitude maior de ohms, como "kiloohms". Isso é parecido com dizer "2 quilômetros" em vez de "2000 metros", ou "2 quilogramas" para "2000 gramas".
Por exemplo, uma entrada de "orange", "orange", "orange" deve retornar:
"33 kiloohms"
Este exercício é uma continuação do Resistor Color Duo e se baseia nele.
Embora você possa resolver os exercícios de prática em qualquer ordem, recomendamos que você siga a sequência sugerida.
Neste exercício, você recebe uma sintaxe para as cores já predefinida usando o prefixo c*, por exemplo, c*black.
Você deve então definir uma sintaxe que associe uma sequência de cores a um valor de resistência com sua unidade do SI, possivelmente com um prefixo métrico, de acordo com as instruções.
As cores ficam entre *[[ e ]] e são separadas por , , por exemplo, *[[c*black, c*yellow, c*violet]].
Esta tarefa provavelmente vai exigir que você use notações ou macros. Talvez você queira dar uma olhada em uma referência.
Como a nova sintaxe é expandida em tempo de compilação, qualquer teste falharia na compilação a menos que toda a sintaxe necessária esteja definida.
Por esse motivo, em vez de contar com os testes tradicionais de tempo de execução, usamos #guard_msgs.
Esse comando compara uma docstring dada com uma mensagem gerada por outro comando, neste caso #eval, e reporta um erro se elas forem diferentes.
Você pode considerar a ausência de erro como um teste que passou.
Se você trabalhar localmente ou no playground online do Lean, vai receber feedback instantâneo de qualquer erro reportado pelo #guard_msgs através do InfoView do Lean.
O valor da resistência deve ser exibido usando a unidade Ω (ohm).
Esse caractere unicode pode ser gerado localmente ou no playground online do Lean com o atalho \ohm.
Se você estiver trabalhando no editor online do Exercism, fique à vontade para copiar o caractere das instruções.
No momento, o executor de testes online não oferece suporte à importação da biblioteca completa de metaprogramação do Lean.
Você pode usar à vontade quaisquer recursos disponíveis no Lean por padrão, incluindo os do namespace Lean, mas adicionar import Lean ou importar módulos específicos do namespace Lean fará com que sua submissão falhe quando você a enviar ao Exercism.
Lembre-se de que importar a biblioteca do Lean não é necessário para resolver este exercício.
Crie sua conta no Exercism para aprender e dominar Lean com 100 exercícios e mentoria humana de verdade, tudo de graça.