2024 Clojure现状调研中分享您的想法!

欢迎!请参阅关于页面以了解更多的信息。

0
core.logic

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

实际上,进行 != 模块α等价需要nom/hash的相反

0
...