首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Clojure的映射:键和值的顺序相同吗?

Clojure的映射:键和值的顺序相同吗?
EN

Stack Overflow用户
提问于 2012-05-27 15:34:38
回答 2查看 1.5K关注 0票数 19

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

在某些情况下,拥有这种行为会使代码的可读性稍高一些,例如

代码语言:javascript
复制
(defn replace-keys [smap m]
  (zipmap (replace smap (keys m)) (vals m)))

代码语言:javascript
复制
(defn replace-keys [smap m]
  (into {} (for [[k v] m] [(smap k k) v]))
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-12-07 22:57:50

我可以(正式地)确认这个问题的答案是肯定的。keysvals的文档字符串在Clojure1.6中进行了更新,以提到这一点(请参阅http://dev.clojure.org/jira/browse/CLJ-1302)。

票数 15
EN

Stack Overflow用户

发布于 2012-05-27 16:19:44

是的,如果这一点改变,很多clojure都会崩溃。

映射被存储为树,并且两个函数以相同的顺序遍历相同的树。

票数 20
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10772384

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档