Si quieres construir algo con una Raspberry Pi, probablemente uses resistencias. Para este ejercicio, necesitas saber dos cosas sobre ellas:
Para resolver este problema, los fabricantes imprimen en las resistencias bandas codificadas con colores que indican sus valores de resistencia. Cada banda tiene una posición y un valor numérico.
Las primeras 2 bandas de una resistencia tienen un esquema de codificación simple: cada color corresponde a un solo número.
En este ejercicio vas a crear un programa útil para que no tengas que memorizar los valores de las bandas.
Estos colores se codifican de la siguiente manera:
El objetivo de este ejercicio es crear una forma de:
Las reglas mnemotécnicas asocian los colores con los números que, cuando se almacenan en un array, coinciden con su índice en ese array: Better Be Right Or Your Great Big Values Go Wrong.
Puedes encontrar más información sobre la codificación de colores de las resistencias en el artículo de Wikipedia sobre el código de colores electrónico.
En este ejercicio, debes definir sintaxis para los colores usando el prefijo c*, por ejemplo, c*black.
Esta sintaxis debe expandirse en tiempo de compilación al valor correspondiente de cada color como un Fin 10, según las instrucciones.
De la misma manera, debes definir sintaxis para un array con todos los valores de los colores usando c*all.
Es probable que esta tarea requiera que uses notaciones o macros. Quizá quieras consultar una referencia.
Como la sintaxis nueva se expande en tiempo de compilación, cualquier prueba fallaría al compilar a menos que esté definida toda la sintaxis necesaria. Por esta razón, en lugar de apoyarnos en las pruebas tradicionales en tiempo de ejecución, verificamos todos los valores usando teoremas. Si un teorema pasa la verificación de tipos, puedes considerarlo una prueba superada.
Si trabajas localmente o en el área de juegos en línea de Lean, obtendrás retroalimentación instantánea sobre si algún teorema tiene éxito o falla, y por qué falla, a través de InfoView de Lean.
Regístrate en Exercism para aprender y dominar Lean con 100 ejercicios y mentoría humana real, todo gratis.