Как получить доступ к списку, созданному в прологе? - PullRequest
1 голос
/ 29 января 2012

Мне нужно написать код, который должен получить доступ к списку, который создан. но я не знаю, как, я прочитал этот вопрос: Как мне сохранить и получить доступ к списку в переменной в Прологе?

но это была не моя проблема, я создал список с этим кодом:

p([Head|Tail]):-
read(Head),
p([Tail|Taile]).
my_write([Head|Tail]):- write(Head),nl,my_write(Tail).

и мне нужен созданный список. что я должен делать ? это меня смущает.

1 Ответ

1 голос
/ 29 января 2012

try

p(L) :-
  (  read(Head),
     Head \= end_of_file
  -> p(Tail),
     L = [Head|Tail]
  ;  L = []
  ).

Prolog больше предназначен для символьной обработки, IO, он основан на побочных эффектах и ​​часто подвержен ошибкам.

Обратите внимание, что read / 1 на самом деле оченьмощный 'синтаксический анализатор', способный обрабатывать обобщенные термины Пролога (структуры, выражения, списки, с произвольным вложением).

В EOF SWI-Prolog возвращает атом end_of_file, следовательно, тест, который вы видите вкод.

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