我需要非常高效地比較Clojure/Java中的兩張地圖,並返回由Java的.equals(..)確定的差異,其中零/等價於「不存在」。兩張地圖之間的區別
即我在尋找最有效的方式來寫像一個函數:
(map-difference
{:a 1, :b nil, :c 2, :d 3}
{:a 1, :b "Hidden", :c 3, :e 5})
=> {:b nil, :c 2, :d 3, :e nil}
我寧願一個不變的Clojure地圖作爲輸出,而是一個Java地圖也將被罰款,如果性能改進會很重要。
對於它的價值,行爲的我基本測試用例/意料的是,以下將是相同的(高達空=「不存在」的等價)的任何兩個地圖A,B:
a
(merge b (difference a b))
執行此操作的最佳方法是什麼?
老故事,但我不知道如何從'Clojure的1.3 clojure.data.diff'將票價上你的問題? – 2012-09-10 12:37:15