2024 Clojure状态调查中分享你的想法!

欢迎!请查阅关于页面以获取更多关于如何使用本站的信息。

0
core.logic

`
(deftest test-tie-disequality
(is (= (run* [q]

       (nom/fresh [a b]
         (!= (nom/tie a a) 'hello)))
    '(_0)))

(is (= (run* [q]

       (nom/fresh [a b]
         (!= (nom/tie a a) (nom/tie b b))))
    ())))

`

目前,第一个会导致错误,因为IPersistentMap(在Tie是记录时被调用)假定另一个项也是记录(这似乎是一个错误)。如果我们撤回将Tie声明为记录的提交,这就可以正常工作。

另一个应该失败,但成功了。这无论Tie是否是记录都一样。

2 个答案

0

评论者:namin

快速修复位于https://github.com/clojure/core.logic/commit/8af0f45f8d1cb515ec7a00e5acd751562a31bb37

实际进行!= modulo 同构需要nom/hash的相反操作。

0
...