que tienen una función que elimina una clave de un mapa:¿Cómo eliminar varias claves de un mapa?
(defn remove-key [key map]
(into {}
(remove (fn [[k v]] (#{key} k))
map)))
(remove-key :foo {:foo 1 :bar 2 :baz 3})
¿Cómo aplico esta función utilizando varias claves?
(remove-keys [:foo :bar] {:foo 1 :bar 2 :baz 3})
Tengo una implementación usando el lazo ... recur. ¿Hay alguna forma más idiomática de hacer esto en Clojure?
(defn remove-keys [keys map]
(loop [keys keys
map map]
(if (empty? keys)
map
(recur (rest keys) (remove-key (first keys) map)))))
¿Clojure no tiene forma de "explotar" un vector en una llamada a función? ¿'' list "de ala Python? – john2x
@ john2x, 'apply' hace exactamente eso. Es decir, '(aplicar f foo bar baz)' es equivalente a 'f (foo bar * baz)' en python. –