Dada la puntuación de alergias de una persona, determina si tiene o no alergia a un elemento dado, y su lista completa de alergias.
Una prueba de alergias produce una única puntuación numérica que contiene la información sobre todas las alergias que tiene la persona (aquellas para las que fue evaluada).
La lista de elementos (y su valor) que se evaluaron es:
Entonces, si Tom es alérgico al maní y al chocolate, obtiene una puntuación de 34.
Ahora, dada solo esa puntuación de 34, tu programa debería poder decir:
Nota: una puntuación dada puede incluir alérgenos no listados arriba (es decir, alérgenos que valen 256, 512, 1024, etc.). Tu programa debería ignorar esos componentes de la puntuación. Por ejemplo, si la puntuación de alergias es 257, tu programa solo debería reportar la alergia a los huevos (1).
Las instrucciones anteriores se sincronizan con un repositorio compartido para garantizar la coherencia entre todos los tracks de lenguajes. Este apéndice ofrece aclaraciones adicionales o modifica las instrucciones según sea necesario para alinearse mejor con los objetivos del track de Clojure.
Para este ejercicio en el track de Clojure, puedes asumir que la salida de la función allergies es un vector, como indican los tests.
Sin embargo, esto no es un requisito estricto; puedes devolver cualquier colección secuencial.
Regístrate en Exercism para aprender y dominar Clojure con 12 conceptos105 ejercicios y mentoría humana real, todo gratis.
¡Exploramos el desplazamiento de bits, la comparación a nivel de bits y otros conceptos de números binarios! También echamos un vistazo a una solución que usa coincidencia de patrones y a un enfoque interesante en Erlang que usa recursión.