Clojure: le mappe si fondono con

Restituisce una mappa che consiste nel resto delle mappe riunite nella prima. Se una chiave è presente in più di una mappa, le mappature di quest'ultima (da sinistra a destra) verranno combinate con la mappatura nel risultato.

Sintassi

Di seguito è riportata la sintassi.

(merge-with f hmap1 hmap2)

Parameters- "f" è l'operatore che deve essere applicato alle mappe hash. 'hmap1' è la mappa di chiavi e valori hash. 'hmap2' è la mappa delle chiavi e dei valori hash, che deve essere mappata con la prima HashMap.

Return Value - Restituisce una mappa che consiste nel resto delle mappe riunite nella prima.

Esempio

Di seguito è riportato un esempio di unione con in Clojure.

(ns clojure.examples.example
   (:gen-class))
(defn example []
   (def demokeys (hash-map "z" 1 "b" 2 "a" 3))
   (def demokeys1 (hash-map "a" 2 "h" 5 "i" 7))
   (println (merge-with + demokeys demokeys1)))
(example)

Produzione

Il codice precedente produce il seguente output.

{z 1, a 5, i 7, b 2, h 5}

Si noti che nell'output poiché la chiave 'a' ricorre due volte, il valore viene aggiunto da entrambe le HashMap come per l'operatore +.