Загрузка файлов в Пролог - PullRequest
16 голосов
/ 21 декабря 2010

Я прохожу учебник по Прологу.Он говорит мне, что я могу загрузить другие файлы пролога, набрав:

[filename].

, но каждый раз, когда я пытаюсь это сделать, получаю

ERROR: load_files/2: Arguments are not sufficiently instantiated.

Файл находится в том же каталоге, что и я.работает в.

Вот копия всего запроса и ошибки:

12 ?- [KB5].

ERROR: load_files/2: Arguments are not sufficiently instantiated

Что я делаю не так?

Ответы [ 3 ]

24 голосов
/ 21 декабря 2010
$ cat junk.pl
test(ok).

$ prolog
Welcome to SWI-Prolog (Multi-threaded, 64 bits, Version 5.8.0)
Copyright (c) 1990-2009 University of Amsterdam.
SWI-Prolog comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to redistribute it under certain conditions.
Please visit http://www.swi-prolog.org for details.

For help, use ?- help(Topic). or ?- apropos(Word).

?- [junk].
% junk compiled 0.00 sec, 24 bytes
true.

Кажется, у меня все хорошо. Конечно, я использую атом для моего имени файла, а не переменную. (KB5 - это имя переменной, а не атома.) Сначала попробуйте ['KB5'] и посмотрите, поможет ли это. Затем попробуйте [kb5] и посмотрите, поможет ли это. Наконец, попробуйте абсолютно минимальный пример, подобный приведенному мною, и посмотрите, сможете ли вы загрузить его таким образом.


Отредактировано, чтобы добавить:

$ cp junk.pl JUNK.pl
$ prolog
Welcome to SWI-Prolog (Multi-threaded, 64 bits, Version 5.8.0)
Copyright (c) 1990-2009 University of Amsterdam.
SWI-Prolog comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to redistribute it under certain conditions.
Please visit http://www.swi-prolog.org for details.

For help, use ?- help(Topic). or ?- apropos(Word).

?- [JUNK].
ERROR: load_files/2: Arguments are not sufficiently instantiated
?- ['JUNK'].
% JUNK compiled 0.00 sec, 1,656 bytes
true.

Похоже, проблема атома действительно. Используйте ['KB5'], и ваша ошибка, вероятно, исчезнет.

9 голосов
/ 02 декабря 2014

Хотя другой предоставленный метод работает. Вот альтернатива:

?- consult('C:/User/Folder/myRules.pl').

Это должно сработать!

0 голосов
/ 05 января 2018

Не сказал, какую платформу вы используете. Я работаю на Raspberry Pi и файлы пролога загружаются нормально, если они находятся в каталоге Pi. Я не мог заставить их загружаться в каталог Pi / Documents. Поэтому я экспериментировал и создал папку «prolog» в каталоге Pi, поместил туда свой файл load.pl и теперь обращаюсь к работам.

consult(prolog/load).
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...