Sha256: 6142bd88650b0839cb6bb910ea49441dc9953b6c5c8fd3cba60c490106b3ef03

Contents?: true

Size: 476 Bytes

Versions: 265

Compression:

Stored size: 476 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_map(&(flagged? flags, &1), 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

265 entries across 265 versions & 1 rubygems

Version Path
trackler-2.2.1.47 tracks/elixir/exercises/allergies/example.exs
trackler-2.2.1.46 tracks/elixir/exercises/allergies/example.exs
trackler-2.2.1.45 tracks/elixir/exercises/allergies/example.exs
trackler-2.2.1.44 tracks/elixir/exercises/allergies/example.exs
trackler-2.2.1.43 tracks/elixir/exercises/allergies/example.exs
trackler-2.2.1.42 tracks/elixir/exercises/allergies/example.exs
trackler-2.2.1.41 tracks/elixir/exercises/allergies/example.exs
trackler-2.2.1.40 tracks/elixir/exercises/allergies/example.exs
trackler-2.2.1.39 tracks/elixir/exercises/allergies/example.exs
trackler-2.2.1.38 tracks/elixir/exercises/allergies/example.exs
trackler-2.2.1.37 tracks/elixir/exercises/allergies/example.exs
trackler-2.2.1.36 tracks/elixir/exercises/allergies/example.exs
trackler-2.2.1.35 tracks/elixir/exercises/allergies/example.exs
trackler-2.2.1.34 tracks/elixir/exercises/allergies/example.exs
trackler-2.2.1.33 tracks/elixir/exercises/allergies/example.exs
trackler-2.2.1.32 tracks/elixir/exercises/allergies/example.exs
trackler-2.2.1.31 tracks/elixir/exercises/allergies/example.exs
trackler-2.2.1.30 tracks/elixir/exercises/allergies/example.exs
trackler-2.2.1.29 tracks/elixir/exercises/allergies/example.exs
trackler-2.2.1.28 tracks/elixir/exercises/allergies/example.exs