简单PROLOG的问题:你怎么测试对您的Prolog数据库的多个查询?(Simple PROLOG

2019-09-16 09:28发布

我有我用来插入我的所有数据Prolog的数据库文件(test_inserts.p)。

我也有一个具有所有的Prolog的查询,我写了,从我的数据库接收特定信息的Prolog的查询文件(test_queries.pl)。

我不知道如何使用gprolog在实际使用test_queries.pl查询对我test_inserts.p数据库文件 我希望会有在同一时间同时加载的方式,并以某种方式能够指挥其查询运行,而不必重新输入,我想跑每个查询....

Answer 1:

我用initialization/1 ISO指令在test_queries.pl让你在底部看到效果。

test_queries.pl

test :-
        findall(_, (a(X,Y), format('~w ~w~n', [X,Y])), _).

:- initialization([test_inserts]).
:- initialization(test).

test_inserts.pl

a(X,Y) :- append(X,Y,[1,2,3]).

然后调用gprolog用--consult-file

gprolog --consult-file test_queries.pl
GNU Prolog 1.4.0
By Daniel Diaz
Copyright (C) 1999-2011 Daniel Diaz
compiling /home/carlo/test_queries.pl for byte code...
/home/carlo/test_queries.pl compiled, 5 lines read - 659 bytes written, 28 ms
compiling /home/carlo/test_inserts.pl for byte code...
/home/carlo/test_inserts.pl compiled, 2 lines read - 379 bytes written, 30 ms
[] [1,2,3]
[1] [2,3]
[1,2] [3]
[1,2,3] []
| ?- 


文章来源: Simple PROLOG issue: How do you test multiple queries against your Prolog database?