gpt4 book ai didi

Clojure 优先级映射

转载 作者:行者123 更新时间:2023-12-01 05:37:56 25 4
gpt4 key购买 nike

我有以下内容,

(let [t (priority-map-by (comparator (fn [[f1 _] [f2 _]]
(< f1 f2)))
:b [8 [2 1]])]

(assoc t :c [8 [2 3]]))

出于某种原因,相关项目 :c 在添加到 map 后被修改,我得到的是,
{:c [8 [2 1]], :b [8 [2 1]]}

我期望的是,
{:c [8 [2 3]], :b [8 [2 1]]}

我是否遗漏了一些明显的东西,为什么项目值被修改?或者这是一个错误?

最佳答案

通过不使用比较器并根据条件返回 -1 0 1,我得到了我想要的东西,

(let [t (priority-map-by (fn [x y]
(if (= x y)
0
(let [[f1 _] x
[f2 _] y]
(if (< f1 f2) -1 1))))

:b [8 [2 1]])]

(assoc t :c [8 [2 3]]))

这给了我我想要的,
{:b [8 [2 1]], :c [8 [2 3]]}

关于Clojure 优先级映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7605241/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com