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 +.