Can you merge the maps first and then apply the function?
Map.merge(a, b, fn _key, value1, value2 -> {value1, value2} end)
|> Map.new(fn
{key, {value1, value2}} -> {key, f(value1, value2)}
{key, value} -> {key, f(value)}
end)
It could get a bit cleaner if Elixir had an equivalent of Ruby’s transform_values, then it wouldn’t be necessary to repeat the key manually.
I’m guessing you want to use Stream because of t hef function? In that case I think you could first use Stream.map and then convert the result back into a map.


















