欢迎!请查看关于页面了解更多此平台的信息。
我需要定义断言,这些断言以后可以从其他命名空间附加额外的规约(而不仅仅是事实)。我在源代码中找不到这样的功能。由于宏的广泛使用,从外部对Core.logic系统进行修改极为困难,对我来说几乎是不可行的。
如果获得批准和方向指导,我也想自己实现这个功能。
由werg发表评论
我实际上已经成功地添加了一个原型,它涵盖了我希望看到的基本行为:(链接:https://github.com/werg/herpderp/blob/master/src/herpderp/multo.clj)
我使用存储在defne元数据的ref中的集合来管理对规约的动态更改。通过使用defclause更改该集合后,我使用eval重新定义var。
这可能不是很好,但至少让我可以继续针对它开发功能。
由dnolen发表评论
我认为当前的实现真的不支持这一点,而且我认为尝试破解当前实现并不明智。如果有人愿意做这项工作,我愿意考虑一个综合解决方案。