如何调用询问逻辑程序的序言查询列表?

时间:2019-04-19 18:23:07

标签: swi-prolog

我想自动调用文件中的查询列表:

file queries.txt
consult(uwr).
submit_emit_timers(1).
activate_game(1,detroit,3,berlin,1).
submit_emit_timers(1).
start_game(1).
sleep(5).
submit_emit_timers(1).
sleep(5).
stop_game(1).
submit_emit_timers(1).
sleep(5).
start_timeout(1,blue).
start_game(1).
stop_game(1).
timepenalty_player(5,blue).
start_game(1).
stop_game(1).
start_penalty(blue).
start_game(1).
etc....
leave.

我想知道如何使用SWI-prolog自动调用它。 uwr.pl是逻辑文件。

我正在使用line命令执行此操作,但是这很繁琐(我在终端中启动swipl,然后通过手动单击上面的所有查询)。调用查询文件将有助于调试。 稍后,我将通过套接字传递这些查询。 (对不起,我在这里的编辑很差;为了使它看起来像一个列表,我仍然需要学习。)

1 个答案:

答案 0 :(得分:1)

使用 mylist[0] = "ABC" mylist[1] = "123" 选项运行swipl

使用命令-s启动SWI-Prolog。

然后您可以致电:

swipl -s uwr.pl -s testing.pl

编辑文件后,可以通过运行?- testing. 重新加载文件。

make.

如果文件没有错误,则还可以在运行命令之前执行以下操作以重新加载:

?- make.

如果?- make, testing. 不起作用,则可以重新启动SWI-Prolog: 如果要在Linux的终端上运行swipl,通常可以按Ctrl + D,Ctrl + P,Ctrl + J。

如果您无法按Ctrl + P,通常也可以使用向上箭头。

如果您不能按Ctrl + J,通常也可以使用Enter键。

如果您的SWI-Prolog有阅读行,您也可以在SWI-Prolog中使用Ctrl + P。