请在2024 Clojure状态调查中分享您的想法!

欢迎!有关此工作方式的信息,请参阅关于页面。

0 投票
core.logic

“实体化”的意思是,例如。

(run 1 [t] (== t ))

使用嵌套向量((link: ], [[]], [[[[]])...展示指数性能
https://www.refheap.com/1e30c198d528300fcba9ef24a

这是否符合预期,还是一个问题?我猜前者,但希望能是后者。如果没有问题就关闭,没有意见。 :)

2 回答

0 投票

评论由:tomoj创作

所附补丁0001-Walk-less.patch使我达到(link: https://www.refheap.com/39b990aed519346c2e41afcbe 文本:这个不错的结果)。它也使我的实际案例快速运行(现在25ms,之前耗时如此之长以至于我从未看到它完成)。这是一个巨大的缓解!

问题不在于实体化,而在于walk-term。在补丁中,我试图避免进行一些似乎冗余的行走。我希望测试的大部分通过是有力证据表明它是冗余的。

然而,补丁破坏了一些统一测试。我发现,截至bd65104ec3~,我的refheap测试作为'通过',但截至bd65104ec3(LOGIC-69补丁),则失败。看起来修复使统一器依赖于walk-term的当前行为。

我现在将继续使用我的补丁./checkouts副本,因为我不使用统一器。我可能会在以后回来尝试修复它。

0 投票
参考:[https://clojure.atlassian.net/browse/LOGIC-166](https://clojure.atlassian.net/browse/LOGIC-166)(由 tomoj 报告的)
...