Sha256: 4125a7d51f1838b5ea0f6ba6afb69c9a777b0400213066783d95ba408239eabf

Contents?: true

Size: 532 Bytes

Versions: 327

Compression:

Stored size: 532 Bytes

Contents

defmodule ETL do
  @doc """
  Transform an index into an inverted index.

  ## Examples

  iex> ETL.transform(%{"a" => ["ABILITY", "AARDVARK"], "b" => ["BALLAST", "BEAUTY"]])
  %{"ability" => "a","aardvark" =>"a","ballast" =>"b","beauty" =>"b"]
  """
  def transform(input) do
    input
      |> Map.to_list
      |> invert
      |> List.flatten
      |> Enum.into(%{})
  end

  defp invert(pairs) do
    Enum.map(pairs, fn({key, values}) ->
      Enum.map(values, fn(value) -> {String.downcase(value), key} end)
    end)
  end
end

Version data entries

327 entries across 327 versions & 1 rubygems

Version Path
trackler-2.2.1.109 tracks/elixir/exercises/etl/example.exs
trackler-2.2.1.108 tracks/elixir/exercises/etl/example.exs
trackler-2.2.1.107 tracks/elixir/exercises/etl/example.exs
trackler-2.2.1.106 tracks/elixir/exercises/etl/example.exs
trackler-2.2.1.105 tracks/elixir/exercises/etl/example.exs
trackler-2.2.1.104 tracks/elixir/exercises/etl/example.exs
trackler-2.2.1.103 tracks/elixir/exercises/etl/example.exs
trackler-2.2.1.102 tracks/elixir/exercises/etl/example.exs
trackler-2.2.1.101 tracks/elixir/exercises/etl/example.exs
trackler-2.2.1.100 tracks/elixir/exercises/etl/example.exs
trackler-2.2.1.99 tracks/elixir/exercises/etl/example.exs
trackler-2.2.1.98 tracks/elixir/exercises/etl/example.exs
trackler-2.2.1.97 tracks/elixir/exercises/etl/example.exs
trackler-2.2.1.96 tracks/elixir/exercises/etl/example.exs
trackler-2.2.1.95 tracks/elixir/exercises/etl/example.exs
trackler-2.2.1.94 tracks/elixir/exercises/etl/example.exs
trackler-2.2.1.93 tracks/elixir/exercises/etl/example.exs
trackler-2.2.1.92 tracks/elixir/exercises/etl/example.exs
trackler-2.2.1.91 tracks/elixir/exercises/etl/example.exs
trackler-2.2.1.90 tracks/elixir/exercises/etl/example.exs