在另一个文件中包含prolog文件,但是否按特定顺序调用它?
我有两个文件,file1和file2,扩展名为prolog,在file1中,在某些情况下,file2附加了新的谓词,因此我必须在file1的某个特定区域查阅file2, 我确实检查过这个问题 ,但我想要一种不同的行为,我想做的是: 在文件1中在另一个文件中包含prolog文件,但是否按特定顺序调用它?,prolog,swi-prolog,Prolog,Swi Prolog,我有两个文件,file1和file2,扩展名为prolog,在file1中,在某些情况下,file2附加了新的谓词,因此我必须在file1的某个特定区域查阅file2, 我确实检查过这个问题 ,但我想要一种不同的行为,我想做的是: 在文件1中 consult_File:- consult('C:/Users/../Prolog/file2.pl'). 在特定条件下,我可以调用consult_File,但不幸的是,如果我在File1中的其他代码中调用consu
consult_File:-
consult('C:/Users/../Prolog/file2.pl').
在特定条件下,我可以调用consult_File,但不幸的是,如果我在File1中的其他代码中调用consult_File,它就不起作用,如果您从命令显式调用它,它就起作用了。
如果有人能帮助我,我将不胜感激
谢谢
查阅您的文件
应该可以。你知道如何调试你的代码吗?我确实跟踪了代码,但它没有查阅文件,跟踪和调试有区别吗?是的,但跟踪是可以的。您不明白为什么不调用consult_文件吗?如果您无条件地使用指令(即:-consult('C:/Users/./Prolog/file2.pl')
)这样做就可以了?我确实发现了错误,我想与您分享,它应该可以正常工作,但我的文件中有:code
start:-从文件读取,查看新文件code
在read from file中,有一个条件检查每个字符是否不等于文件末尾,一旦到达文件末尾,它就会失败,并且我没有处理if语句的其他部分,这就是为什么每次都失败,read_from_file中的代码都正确完成了,但一旦到达文件末尾,它就会失败,所以我通过在if语句的else中加上true来处理它,谢谢,无论如何:改用SWI的模块系统!我看不出你为什么想要你所描述的东西。如果你的代码结构清晰,那么使用SWI的make
和交叉引用器将受益匪浅!