Как я могу распечатать список рекурсивно без использования какой-либо встроенной функции в Прологе? - PullRequest
0 голосов
/ 10 октября 2019

Я новичок в Прологе. Я понимаю фундаментальную рекурсию в Прологе, такую ​​как append, member.

Мне интересно, как можно распечатать список рекурсивно, не используя встроенную функцию в Прологе.

Может кто-нибудь помочь мнес этим?

1 Ответ

4 голосов
/ 10 октября 2019

Большинство предикатов, связанных с обработкой списка, превращаются в правило для пустого списка и правило для обработки одного элемента и рекурсивной обработки остальной части списка. Как шаблон, он будет выглядеть примерно так:

pred([])     :- ??? % empty case
pred([X|Xs]) :- 
   ???              % handle X
   pred(Xs).        % recur for the tail of the list

Обратите внимание, что мы просто используем здесь определение списка, никаких специальных предикатов не требуется. Посмотрите, достаточно ли это для вас, чтобы найти решение, и если вы это сделаете, опубликуйте его как ответ.

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