Маючи оцінку алергії людини, визначмо, чи є в неї алергія на заданий алерген, і складімо повний список її алергій.
Тест на алергію дає одну числову оцінку, яка містить інформацію про всі алергії людини (ті, які в неї перевіряли).
Ось перелік алергенів (і їхні значення), які перевіряють:
Тож якщо Том має алергію на peanuts і chocolate, він отримує оцінку 34.
Тепер, маючи лише цю оцінку 34, наша програма має вміти сказати:
Зауваження: задана оцінка може містити алергени, не перелічені вище (тобто алергени зі значеннями 256, 512, 1024 тощо). Наша програма має ігнорувати ці складники оцінки. Наприклад, якщо оцінка алергії дорівнює 257, наша програма має повідомити лише про алергію eggs (1).
Наведені вище інструкції синхронізовано зі спільним репозиторієм, щоб забезпечити однаковість у всіх мовних треках. Цей додаток додатково уточнює або змінює інструкції, щоб краще узгодити їх із цілями треку Clojure.
У цій вправі в треку Clojure можна припустити, що вихідні дані функції allergies є вектором, як показують тести.
Однак це не сувора вимога: можна повернути будь-яку послідовну колекцію.
Зареєструйтеся на Exercism, щоб вивчати й опановувати Clojure, а також 12 концепцій105 вправ та справжнє наставництво від людей, і все це безкоштовно.
Ми розглянемо побітовий зсув, побітове порівняння та інші поняття двійкових чисел! А ще подивимося на рішення зі зіставленням зі зразком і на цікавий підхід у Erlang з використанням рекурсії.