J'ai une carte Clojure qui peut contenir des valeurs nulles et j'essaye d'écrire une fonction pour les supprimer, sans beaucoup de succès (je suis nouveau dans ce domaine).Supprimer les valeurs nulles d'une carte?
Par exemple:
(def record {:a 1 :b 2 :c nil})
(merge (for [[k v] record :when (not (nil? v))] {k v}))
Il en résulte une séquence de cartes, ce qui est pas ce que je pensais de fusion:
({:a 1} {:b 2})
Je voudrais avoir:
{:a 1, :b 2}
+1 pour l'approche (second filtre ...). Très intelligent. –
Malheureusement, l'approche '(filter second ...)' ne fonctionne pas. '(dans {} (deuxième filtre {: un vrai: b faux}))' donne '{: un vrai}' - – kotarak
@kotorak: Bonne capture sur le problème nil/faux -> reedit –