J'ai besoin de comparer très efficacement deux cartes dans Clojure/Java, et de retourner la différence comme déterminé par .equals de Java (..), avec nil/null équivalent à "non présent".Différence entre deux cartes
-à-dire que je suis à la recherche de la façon la plus efficace d'une écriture fonction comme:
(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}
Je préfère une carte immuable Clojure en sortie, mais une carte Java serait aussi bien si l'amélioration des performances serait significatif.
Pour ce que ça vaut, mon cas/attente du comportement de test de base est que le suivant sera égal (jusqu'à l'équivalence de null = « Inexistant ») pour tout deux cartes a et b:
a
(merge b (difference a b))
Quelle serait la meilleure façon de mettre en œuvre cela?
histoire ancienne, mais je me demande comment 'clojure.data.diff' de Clojure 1.3 tireraient sur ton problème? –