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

欢迎!请查看关于页面了解更多此平台的信息。

+1 投票
core.logic

我需要定义断言,这些断言以后可以从其他命名空间附加额外的规约(而不仅仅是事实)。我在源代码中找不到这样的功能。由于宏的广泛使用,从外部对Core.logic系统进行修改极为困难,对我来说几乎是不可行的。

如果获得批准和方向指导,我也想自己实现这个功能。

3 答案

0 投票

由werg发表评论

我实际上已经成功地添加了一个原型,它涵盖了我希望看到的基本行为:(链接:https://github.com/werg/herpderp/blob/master/src/herpderp/multo.clj

我使用存储在defne元数据的ref中的集合来管理对规约的动态更改。通过使用defclause更改该集合后,我使用eval重新定义var。

这可能不是很好,但至少让我可以继续针对它开发功能。

0 投票

由dnolen发表评论

我认为当前的实现真的不支持这一点,而且我认为尝试破解当前实现并不明智。如果有人愿意做这项工作,我愿意考虑一个综合解决方案。

0 投票
by
引用: https://clojure.atlassian.net/browse/LOGIC-35(由 alex+import 报告)
...