Allergies

Allergies

Moyen

Instructions

Étant donné le score d'allergie d'une personne, détermine si elle est allergique ou non à un élément donné, ainsi que la liste complète de ses allergies.

Un test d'allergie produit un score numérique unique qui contient les informations sur toutes les allergies de la personne (celles pour lesquelles elle a été testée).

La liste des éléments testés (et leur valeur) est la suivante :

  • eggs (1)
  • peanuts (2)
  • shellfish (4)
  • strawberries (8)
  • tomatoes (16)
  • chocolate (32)
  • pollen (64)
  • cats (128)

Ainsi, si Tom est allergique aux peanuts et au chocolate, il obtient un score de 34.

Maintenant, avec seulement ce score de 34, ton programme doit pouvoir dire :

  • Si Tom est allergique à l'un des allergènes listés ci-dessus.
  • Tous les allergènes auxquels Tom est allergique.

Remarque : un score donné peut inclure des allergènes non listés ci-dessus (c'est-à-dire des allergènes dont le score est 256, 512, 1024, etc.). Ton programme doit ignorer ces composantes du score. Par exemple, si le score d'allergie est 257, ton programme ne doit rapporter que l'allergie eggs (1).

Annexe

Note

Les instructions ci-dessus sont synchronisées avec un dépôt partagé afin de garantir la cohérence entre tous les parcours linguistiques. Cette annexe apporte des précisions supplémentaires ou modifie les instructions si nécessaire, afin de mieux les aligner sur les objectifs du parcours Clojure.

Pour cet exercice du parcours Clojure, tu peux considérer que la valeur de retour de la fonction allergies est un vecteur, comme l'indiquent les tests. Ce n'est toutefois pas une obligation stricte ; tu es libre de renvoyer n'importe quelle collection séquentielle.

Modifie via GitHub Le lien s'ouvre dans une nouvelle fenêtre ou un nouvel onglet
Clojure Exercism

Prêt à commencer Allergies ?

Inscris-toi sur Exercism pour apprendre et maîtriser Clojure avec 12 concepts105 exercices, et un vrai mentorat humain, le tout gratuitement.

Analyse approfondie de Allergies !

On explore le décalage de bits, la comparaison bit à bit et d'autres concepts sur les nombres binaires ! On jette aussi un œil à une solution qui utilise le filtrage par motif, ainsi qu'à une approche intéressante en Erlang reposant sur la récursivité.