Tuesday, December 21, 2021

Elixir: rename_keys

Elixir equivalent of Clojure rename_keys()
1
2
3
4
5
6
7
8
@doc """
Returns the map with the keys in kmap renamed to the values in kmap.
"""
def rename_keys(map, kmap) when is_map(map) and is_map(kmap) do
  for {key, value} <- map,
      into: %{},
      do: if(new_key = Map.get(kmap, key), do: {new_key, value}, else: {key, value})
end