我得到了一个很大的旧程序文件集合,我想在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中排除所需的谓词,然后将其与显式名称空间一起使用。由于文件的特殊性,这是不可宏化的(转置有时用在ugraph上下文中,在文件中描述的谓词的名称,或者作为文本输出和注释的一部分)。如果可能的话,我宁愿避免走这条路。
发布于 2018-06-04 02:49:08
默认情况下,SWI-Prolog autoload
标志设置为true
。在你的帖子中没有足够的细节,但你可以尝试将其设置为false
。这将阻止任何模块的自动加载。也就是说,任何使用的模块都需要显式加载。这将为您提供对加载哪些模块的完全控制,这些模块很可能需要为您的应用程序编写(或更新)加载程序文件。
https://stackoverflow.com/questions/50668393
复制相似问题