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 中快速修复

进行实际的不等于 alpha 等价需要对 nom/hash 取反。

0
参考: https://clojure.atlassian.net/browse/LOGIC-119(由 namin 报告)
...