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

欢迎!请参阅关于页面以获取更多有关此工作的信息。

+1 投票
core.logic

我需要定义可以稍后(以及从其他命名空间)附加更多子句的谓词(因此不仅仅是事实)。我在源代码中找不到此类功能。由于宏的广泛使用,从外部将该系统拼接到core.logic上极为困难,甚至对我来说几乎是不可能的。

如果给定一个OK并且大致的方向,我也想亲自实现这个功能。

3 个答案

0 投票

评论者:werg

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

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

这可能不是一个好方法,但它允许我继续开发对此的功能。

0 投票

评论者:dnolen

我认为当前实现无法真正支持这一点,我也不认为尝试绕过当前实现是明智的。如果有人愿意做这项工作,我愿意考虑一个全面的解决方案。

0 投票
by
参考:https://clojure.atlassian.net/browse/LOGIC-35(由 alex+import 提出)
...