Sha256: 8c7f3dac76410188962377698f194288e82ff947dd9fe809e66db11eb1f07f5e

Contents?: true

Size: 484 Bytes

Versions: 131

Compression:

Stored size: 484 Bytes

Contents

defmodule Allergies do
  import Bitwise

  @allergens [
    "eggs",
    "peanuts",
    "shellfish",
    "strawberries",
    "tomatoes",
    "chocolate",
    "pollen",
    "cats"
  ]

  def list(flags) do
    Enum.with_index(@allergens)
    |> Enum.filter(&flagged?(flags, &1))
    |> Enum.map(fn {item, _} -> item end)
  end

  def allergic_to?(flags, item) do
    Enum.member?(list(flags), item)
  end

  defp flagged?(flags, {_, index}) do
    (flags &&& 1 <<< index) > 0
  end
end

Version data entries

131 entries across 131 versions & 1 rubygems

Version Path
trackler-2.2.1.78 tracks/elixir/exercises/allergies/example.exs
trackler-2.2.1.77 tracks/elixir/exercises/allergies/example.exs
trackler-2.2.1.76 tracks/elixir/exercises/allergies/example.exs
trackler-2.2.1.75 tracks/elixir/exercises/allergies/example.exs
trackler-2.2.1.74 tracks/elixir/exercises/allergies/example.exs
trackler-2.2.1.73 tracks/elixir/exercises/allergies/example.exs
trackler-2.2.1.72 tracks/elixir/exercises/allergies/example.exs
trackler-2.2.1.71 tracks/elixir/exercises/allergies/example.exs
trackler-2.2.1.70 tracks/elixir/exercises/allergies/example.exs
trackler-2.2.1.69 tracks/elixir/exercises/allergies/example.exs
trackler-2.2.1.68 tracks/elixir/exercises/allergies/example.exs
trackler-2.2.1.67 tracks/elixir/exercises/allergies/example.exs
trackler-2.2.1.66 tracks/elixir/exercises/allergies/example.exs
trackler-2.2.1.65 tracks/elixir/exercises/allergies/example.exs
trackler-2.2.1.64 tracks/elixir/exercises/allergies/example.exs
trackler-2.2.1.63 tracks/elixir/exercises/allergies/example.exs
trackler-2.2.1.62 tracks/elixir/exercises/allergies/example.exs
trackler-2.2.1.61 tracks/elixir/exercises/allergies/example.exs
trackler-2.2.1.60 tracks/elixir/exercises/allergies/example.exs
trackler-2.2.1.59 tracks/elixir/exercises/allergies/example.exs