Cómo fusionar dos mapas en groovy

Pregunta:
Cómo fusionar los mapas mientras se suman valores de claves comunes entre los mapas.

Entrada:

[a: 10, b:2, c:3]  
[b:3, c:2, d:5] 

Salida

[a:10, b:5, c:5, d:5]

Pregunta Extendida:
Cómo fusionar los 2 mapas originales, aplicando una función (Cierre) en los valores de las claves comunes en los 2 mapas. es decir, en lugar de simplemente resumir los valores de las claves comunes, permita que el usuario especifique la función a utilizar.

Por ejemplo: si el usuario quiere usar la función 'min' en lugar de sumar, entonces se puede especificar min para obtener[a:10, b:2, c:2, d:5] como el resultado.

Respuestas a la pregunta(4)

Su respuesta a la pregunta