Tengo un mapa de Clojure que puede contener valores que son nulos y estoy intentando escribir una función para eliminarlos, sin mucho éxito (soy nuevo en esto).¿Eliminar valores nulos de un mapa?
Ej:
(def record {:a 1 :b 2 :c nil})
(merge (for [[k v] record :when (not (nil? v))] {k v}))
Esto se traduce en una secuencia de mapas, que no es lo que esperaba de fusión:
({:a 1} {:b 2})
me gustaría tener:
{:a 1, :b 2}
+1 para el (segundo filtro ...) enfoque. Muy inteligente. –
Desafortunadamente, el enfoque '(segundo filtro ...)' no funciona. '(into {} (filter second {: a true: b false}))' da '{: a true}' - – kotarak
@kotorak: Buena captura en el problema nil/false -> reedit –