Dada la puntuación de alergias de una persona, determina si es alérgica o no a un elemento concreto 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 (a las que se le hizo la prueba).
La lista de elementos (y su valor) que se probaron es la siguiente:
Así que, si Tom es alérgico a peanuts y chocolate, obtiene una puntuación de 34.
Ahora, dada únicamente esa puntuación de 34, tu programa debería ser capaz de decir:
Nota: una puntuación concreta puede incluir alérgenos que no aparecen en la lista anterior (es decir, alérgenos con una puntuación de 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 indicar la alergia a eggs (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 ajustarse mejor a los objetivos del track de Clojure.
En este ejercicio del track de Clojure, puedes dar por sentado que la salida de la función allergies es un vector, tal y como indican las pruebas.
Sin embargo, no es un requisito estricto; tienes libertad para 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 la coincidencia de patrones y a un enfoque interesante en Erlang que usa recursión.