Clojure - Maps merge-with

返回一个由其余映射组成的映射,该映射与第一个映射相结合。 如果一个键出现在多个映射中,则后者(从左到右)的映射将与结果中的映射组合。

语法

语法如下。

(merge-with f hmap1 hmap2)

参数 − 'f'是需要应用于哈希映射的运算符。 'hmap1'是哈希键和值的映射。 'hmap2'是哈希键和值的映射,需要与第一个HashMap进行映射。

返回值 − 返回一个映射,其中包含与第一个映射相结合的其余映射。

示例

以下是 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)

输出

上面的代码产生以下输出。

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

请注意,在输出中,由于键"a"出现了两次,该值是根据运算符 + 从两个 HashMap 添加的。

❮ clojure_maps.html