Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在另一个文件中包含prolog文件,但是否按特定顺序调用它?_Prolog_Swi Prolog - Fatal编程技术网

在另一个文件中包含prolog文件,但是否按特定顺序调用它?

在另一个文件中包含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

我有两个文件,file1和file2,扩展名为prolog,在file1中,在某些情况下,file2附加了新的谓词,因此我必须在file1的某个特定区域查阅file2, 我确实检查过这个问题 ,但我想要一种不同的行为,我想做的是:

在文件1中

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
和交叉引用器将受益匪浅!