我有一个用于插入所有数据的 Prolog 数据库文件 (test_inserts.p)。
我还有一个 Prolog 查询文件 (test_queries.pl),其中包含我编写的所有 Prolog 查询,以便从我的数据库中接收特定信息。
我想知道在使用 gprolog 时如何对我的 test_inserts.p 数据库文件实际使用 test_queries.pl 查询?我希望有一种方法可以同时加载两者,并且能够以某种方式命令运行哪个查询,而不必重新键入我想要运行的每个查询......
我有一个用于插入所有数据的 Prolog 数据库文件 (test_inserts.p)。
我还有一个 Prolog 查询文件 (test_queries.pl),其中包含我编写的所有 Prolog 查询,以便从我的数据库中接收特定信息。
我想知道在使用 gprolog 时如何对我的 test_inserts.p 数据库文件实际使用 test_queries.pl 查询?我希望有一种方法可以同时加载两者,并且能够以某种方式命令运行哪个查询,而不必重新键入我想要运行的每个查询......
我使用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] []
| ?-