ある人のアレルギースコアが与えられたとき、その人が特定の項目にアレルギーがあるかどうかと、アレルギーの一覧全体を判定します。
アレルギー検査では、1つの数値のスコアが得られます。このスコアには、その人が持つ(検査の対象となった)すべてのアレルギーの情報が含まれています。
検査の対象となった項目(とその値)は次のとおりです。
たとえば、Tomがpeanutsとchocolateにアレルギーがある場合、スコアは34になります。
では、この34というスコアだけが与えられたとき、プログラムは次のことを判定できる必要があります。
注意:スコアには、上に挙げていないアレルゲン(つまり256、512、1024などの値を持つアレルゲン)が含まれていることがあります。プログラムは、スコアのそうした部分を無視してください。たとえば、アレルギースコアが257の場合、プログラムは eggs(1)のアレルギーだけを報告します。
上の指示は、すべての言語トラックで一貫性を保つために、共有リポジトリと同期されています。 この付録では、Clojureトラックの目標によりよく沿うように、必要に応じて追加の説明を加えたり、指示を修正したりしています。
Clojureトラックのこの演習では、テストが示すとおり、allergies関数の出力はvectorだと仮定してかまいません。
ただし、これは厳密な要件ではありません。順序付きのコレクションであれば何を返してもかまいません。