Difference between two maps

前端 未结 7 1542
悲&欢浪女
悲&欢浪女 2021-01-01 17:22

I need to very efficiently compare two maps in Clojure/Java, and return the difference as determined by Java\'s .equals(..), with nil/null equivalent to \"not present\".

7条回答
  •  别那么骄傲
    2021-01-01 17:47

    What about...

    (defn map-diff [m1 m2]
      ;; m1: hashmap
      ;; m2: hashmap
      ;; => the difference between them
      (reduce merge
              (map #(hash-map % (- (or (% m1) 0) (or (% m2) 0)))
                   (keys (merge m1 m2)))))
    

提交回复
热议问题