2024 Clojure状态调查!分享您的想法。

欢迎!请参阅关于页面,了解更多关于这个网站如何运作的信息。

0
core.logic

这里的“实体化”指的是例如。

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

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

这是预期的结果,还是有bug?我猜是前者,但希望是后者。如果这只是这个样子,请随意关闭而不评论。:)

2 个答案

0

评论者:tomoj

附加的补丁0001-Walk-less.patch使我得到(link: https://www.refheap.com/39b990aed519346c2e41afcbe 文本:这个非常好的结果)。这也使我的实际用例运行相当快(现在25ms,之前要花费很长时间以至于我从未看到它完成)。这是一个巨大的放松!

问题不在于实体化,而在于walk-term。在补丁中,我试图避免执行一些似乎是冗余的行走。我希望多数测试仍然通过是它是冗余的良好证据。

然而,补丁破坏了一些统一测试。我注意到,我的refheap测试'通过'至bd65104ec3~,但失败至bd65104ec3(LOGIC-69的补丁)。这似乎使统一器依赖于walk-term的当前行为。

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

0
...