Clojure - 映射函数 merge-with



返回由其后的映射元素拼接到第一个映射元素后的一个映射。如果某个键出现在多个映射中,则后者映射(从左至右)中的映射将与结果中的映射合并。

语法

如下为语法。

(merge-with f hmap1 hmap2)

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

返回值 - 返回由其后的映射元素拼接到第一个映射元素后的一个映射。

示例

以下是 Clojure 中 merge-with 的示例。

(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.htm
广告
© . All rights reserved.