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.98 tracks/elixir/exercises/allergies/example.exs
trackler-2.2.1.97 tracks/elixir/exercises/allergies/example.exs
trackler-2.2.1.96 tracks/elixir/exercises/allergies/example.exs
trackler-2.2.1.95 tracks/elixir/exercises/allergies/example.exs
trackler-2.2.1.94 tracks/elixir/exercises/allergies/example.exs
trackler-2.2.1.93 tracks/elixir/exercises/allergies/example.exs
trackler-2.2.1.92 tracks/elixir/exercises/allergies/example.exs
trackler-2.2.1.91 tracks/elixir/exercises/allergies/example.exs
trackler-2.2.1.90 tracks/elixir/exercises/allergies/example.exs
trackler-2.2.1.89 tracks/elixir/exercises/allergies/example.exs
trackler-2.2.1.88 tracks/elixir/exercises/allergies/example.exs
trackler-2.2.1.87 tracks/elixir/exercises/allergies/example.exs
trackler-2.2.1.86 tracks/elixir/exercises/allergies/example.exs
trackler-2.2.1.85 tracks/elixir/exercises/allergies/example.exs
trackler-2.2.1.84 tracks/elixir/exercises/allergies/example.exs
trackler-2.2.1.83 tracks/elixir/exercises/allergies/example.exs
trackler-2.2.1.82 tracks/elixir/exercises/allergies/example.exs
trackler-2.2.1.81 tracks/elixir/exercises/allergies/example.exs
trackler-2.2.1.80 tracks/elixir/exercises/allergies/example.exs
trackler-2.2.1.79 tracks/elixir/exercises/allergies/example.exs