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
廣告