2024 年 Clojure 状况调查! 分享您的看法。

欢迎!请参阅 关于 页面,了解更多关于这个网站的工作方式。

0
错误
编辑

大家好!我遇到了一个罕见的问题,我拥有两组地图,并需要获取它们之间的差异,如下示例

 first-sequence: #{{:id "test" :status :up} {:id "other" :status :up}}

second-sequence: #{{:id"test" :status :up} {:id "other" :status :up}}

所以,对于这两组数据,我执行以下语句

(seq (map #(produce!
            (adapt-schema %) producer)
          (first (clojure.data/diff first-sequence second-sequence))))

我期望的结果是

[nil nil #{{:id "test" :status :up} {:id "other" :status :up}]

但是我在测试中得到了以下 diff 结果,并在发布错误消息的数量后

[#{{:id "test" :status :up} {:id "other" :status :up}#{{:id "test" :status :up} {:id "other" :status :up}nil]

但是例如在 REPL 中我得到了正确的值,所以我对这种行为感到困惑,任何回复对我来说都会非常有帮助。谢谢!

1 答案

0

解决了,我的问题是,我从 datomic 获取数据,所以我需要将它强制转换为模式,然后在得到的结果集上进行 diff

(->> all-results
         map #(schema/coerce! % models.schema/Result))
         set)
...