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.139 tracks/elixir/exercises/allergies/example.exs
trackler-2.2.1.138 tracks/elixir/exercises/allergies/example.exs
trackler-2.2.1.137 tracks/elixir/exercises/allergies/example.exs
trackler-2.2.1.136 tracks/elixir/exercises/allergies/example.exs
trackler-2.2.1.135 tracks/elixir/exercises/allergies/example.exs
trackler-2.2.1.134 tracks/elixir/exercises/allergies/example.exs
trackler-2.2.1.133 tracks/elixir/exercises/allergies/example.exs
trackler-2.2.1.132 tracks/elixir/exercises/allergies/example.exs
trackler-2.2.1.131 tracks/elixir/exercises/allergies/example.exs
trackler-2.2.1.130 tracks/elixir/exercises/allergies/example.exs
trackler-2.2.1.129 tracks/elixir/exercises/allergies/example.exs
trackler-2.2.1.128 tracks/elixir/exercises/allergies/example.exs
trackler-2.2.1.127 tracks/elixir/exercises/allergies/example.exs
trackler-2.2.1.126 tracks/elixir/exercises/allergies/example.exs
trackler-2.2.1.125 tracks/elixir/exercises/allergies/example.exs
trackler-2.2.1.124 tracks/elixir/exercises/allergies/example.exs
trackler-2.2.1.123 tracks/elixir/exercises/allergies/example.exs
trackler-2.2.1.122 tracks/elixir/exercises/allergies/example.exs
trackler-2.2.1.121 tracks/elixir/exercises/allergies/example.exs
trackler-2.2.1.120 tracks/elixir/exercises/allergies/example.exs