繁体   English   中英

Clojure的地图:键和val的顺序是一样的吗?

[英]Clojure's maps: are keys and vals in same order?

在Clojure 1.3+中可以依赖(= m (zipmap (keys m) (vals m)))吗?

在某些情况下,具有此行为会使代码稍微更易读,例如

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

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

是的,如果改变了,很多clojure会破裂。

地图存储为树,两个函数以相同的顺序遍历同一棵树。

我可以(正式)确认答案是肯定的。 关于keysvals的文档字符串在Clojure 1.6中进行了更新,以提及这一点(参见http://dev.clojure.org/jira/browse/CLJ-1302 )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM