Many times I need to merge a subset of a keyword list or a map into another 
keyword list or map while requiring it to fail if not all keys are present.

For this purpose I have small utility modules called KwUtils and MapUtils 
where I have functions like the one below:

```
  @doc """
  Takes specified key-value pairs from the keyword list but raises if any 
not found.
  """
  @spec take!( keyword(), [ atom()]) :: keyword()
  def take!( kw, keys) do
    taken = Keyword.take( kw, keys)

    if length( taken) != length( keys) do
      raise "Expected all keys in #{ inspect( keys)} to be present in #{ 
inspect( kw)}"
    end

    taken
  end
```

It'd be nice if a corresponding function was part of the `Keyword` and 
`Map` modules each.

-- 
You received this message because you are subscribed to the Google Groups 
"elixir-lang-core" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to elixir-lang-core+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elixir-lang-core/45c41b5a-f904-44f8-b94a-4392425a0e86n%40googlegroups.com.

Reply via email to