Я изучаю Prolog используя SWI-Prolog.Не удается получить доступ к файлу в Prolog
Я нашел некоторые проблемы со следующим примером: просто получить доступ к файлу и записать в него то, что пользователь вложил в оболочку Prolog.
processFile(File) :- see(File),
processFile,
seen.
processFile :- read(Query),
process(Query).
process(end_of_file) :- !.
process(Query) :- Query,
write(Query),
nl,
processFile.
Проблема заключается в том, что, когда в оболочке Пролога, я пытаюсь выполнить оператор ProcessFile с именем файла я получаю ошибку:
Если я дам имя файла с расширением я получить это сообщение об ошибке (кажется, интерпретировать расширение как оператор):
7 ?- processFile(myFile.txt).
ERROR: Syntax error: Operator expected
ERROR: processFile(myFile
ERROR: ** here **
ERROR: .txt) .
Если я даю имя файла без расширения я получаю это другое сообщение об ошибке (файл не существует):
7 ?- processFile(myFile).
ERROR: see/1: source_sink `myFile' does not exist (No such file or directory)
Так я и пытаюсь создать новый файл с именем Myfile (без расширения) в той же папке, где находится исходный файл пролог код, но я еще раз получаем:
8 ?- processFile(myFile).
ERROR: see/1: source_sink `myFile' does not exist (No such file or directory)
Почему? где ошибка? Как я могу это решить?
@closing_voters: причина закрытия не применяется. «Трудно сказать, что здесь задают». Это очень конкретный вопрос о конкретной проблеме с кодом OP. –