Использование consult/1
похоже на использование ?- [filename]
.Используя consult/1
в своей программе, вы можете получить доступ ко всем фактам и предикатам, записанным в файл.Например, если у вас есть файл data.pl
, например, такой:
fact(a).
fact(b).
fact(c).
hello:-
writeln('hello').
Вы можете создать файл test.pl
и использовать все факты и предикат data.pl
:
run:-
consult(prova),
findall(A,fact(A),L),
hello,
writeln(L).
?- run.
hello
[a,b,c]
true.
Кроме того, consult, кажется, принимает только файл .pl
со структурой словаря.С другой стороны, с помощью open/3
вы можете получить доступ к файлам каждого типа и читать также char по char, но вы не можете получить доступ к предикатам и фактам, записанным в файл:
run:-
open('prova.pl',read,Str),
findall(A,fact(A),L),
hello,
writeln(L).
?- run.
ERROR: Undefined procedure: fact/1
Очевидно, с помощью open/3
или open/4
вы можете создавать, записывать в файлы и т. Д.