有兩個地圖:轉化包含HashMap列表插入設置
(def a {:a 1 :b 2 :c 3})
(def b {:b 222 :d 4})
放入一個載體:
(def l [a b])
什麼是構建一套(以獨特的按鍵結構方面)最簡單的方法,其中在發生密鑰衝突(在這種情況下爲b)時,優先級爲左側操作數(本例中爲b 2)。換句話說,我希望得到一個結果:
{:a 1 :b 2 :c 3 :d 4}
其中兩個來銘記心中的解決方案是:
(apply merge-with (fn [left _] left) l)
(reduce conj (reverse l))
首先一個似乎並不習慣對我來說,第二個擔心我,因爲渴望列表反轉,這聽起來有點無用。任何其他想法?
我沒有看到第一個解決方案的任何問題。爲什麼它不是慣用的? – m0skit0
與第二個解決方案。如果你有很長的列表 - 考慮用慵懶的rseq替換反向。 – iced
@ m0skit0將所有元素拋入一個並不真正關心這兩個參數的「合併」函數(只返回第一個元素)讓我感覺有點不舒服:) – Michal