【发布时间】:2018-06-03 16:11:32
【问题描述】:
我收到了大量旧的程序文件集合,我想在 64 位 Linux 下使用 7.2 Swi-prolog 设置。其中大多数报告了一个
import/1: No permission to import clpfd:transpose/2 into user (already imported from ugraphs)
错误,据我所知,由于当前版本引入了默认加载 ugraph 并在用户实际指定的模块上选择它的新行为,导致命名冲突的结果。
我希望 Prolog 更喜欢显式使用的模块而不是默认模块。如果做不到这一点,我想自定义这个默认加载的模块列表。
其他答案建议从 use_module 中排除所需的谓词,然后将其与显式命名空间一起使用。由于文件的具体情况,这不是宏可实现的(转置有时用于 ugraphs 上下文、文件中描述的谓词名称或作为文本输出和 cmets 的一部分)。如果可能的话,我宁愿避免走这条路。
【问题讨论】:
标签: swi-prolog