Пролог проблемы - PullRequest
       11

Пролог проблемы

0 голосов
/ 06 мая 2011

Я использую SWI пролог. Мой код работает для первой строки, но он не запускает другие.

 see(Data), //open file to read
   repeat,
    readln(A), //read line from file 
    write(A),
   A\==end_of_file,!.

Я получил неожиданную ошибку конца файла. У тебя есть идеи?

1 Ответ

1 голос
/ 06 мая 2011

readln / 1 не входит в руководство по swi-prolog, поэтому, возможно, вам следует включить код для этого при условии, что он делает то, что вы говорите, код, вероятно, должен быть:

 see(Data), //open file to read
   repeat,
   readln(A), //read line from file 
   write(A),
   A=end_of_file,!.

структура "repeat / 0" работает как повтор ... до

на заметку, я бы предпочел рекурсивное решение ... как

io(end_of_file):-
    write(end_of_file).
io(_):-
    readln(A),
    write(A),
    io(A).

чувствует себя более декларативным.

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