首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Clojure:直接访问Datatype的唯一字段

Clojure:直接访问Datatype的唯一字段
EN

Stack Overflow用户
提问于 2013-04-14 12:14:55
回答 1查看 92关注 0票数 0

假设我有一个只有一个字段的数据类型,其中包含一个排序映射。

代码语言:javascript
复制
(defrecord AdjacencyList [data])
(def adjacency-list (AdjacencyList. (sorted-map 1 {2 100}, 2 {3 -100})))

现在,如果我想要操作这个字段并保持它的类型,我必须这样做:

代码语言:javascript
复制
(AdjacencyList. (dissoc (:data adjacency-list) 2))

有没有办法通过调用记录来引用字段?

代码语言:javascript
复制
(dissoc adjacency-list 2)

如果我需要一个常规的散列映射,我可以使用记录的映射实现,但是我需要一个排序的映射,并且我使用集合和向量获得了其他类似的数据类型。

一种解决方案是使用deftype代替,并自己实现所需的数据结构,但我希望这不是必要的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-14 14:45:28

Clojure的update-in函数适用于所有类型的关联集合,包括排序的映射和defrecords:

(update-in adjacency list:数据显示2)

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

https://stackoverflow.com/questions/15995720

复制
相关文章

相似问题

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