usar que play lenguaje identificadores funciones drracket definir como clojure hashmap

clojure - que - play racket



Los mapas de Clojure: ¿están las llaves y los valores en el mismo orden? (2)

Puedo confirmar (oficialmente) que la respuesta a esto es sí. Las cadenas de documentación para keys y valores se actualizaron en Clojure 1.6 para mencionar esto (consulte http://dev.clojure.org/jira/browse/CLJ-1302 ).

¿Se puede confiar en (= m (zipmap (keys m) (vals m))) en Clojure 1.3+?

Tener este comportamiento hace que el código sea un poco más legible en algunas situaciones, por ejemplo,

(defn replace-keys [smap m] (zipmap (replace smap (keys m)) (vals m)))

contra

(defn replace-keys [smap m] (into {} (for [[k v] m] [(smap k k) v]))


Sí, un montón de clojure se rompería si eso cambiara.

Los mapas se almacenan como árboles y ambas funciones recorren el mismo árbol en el mismo orden.