Логическое программирование

       

Повторение и откат


repetive:-

       <предикаты>,

       fail.

Встроенный предикат fail  (неудача) вызывает возврат (откат), так что предикаты выполняются еще раз.

Пример:

parent(pam,bob).

parent(tom,bob).

parent(tom,lis).

parent(bob,ann).

parent(bob,pat).

parent(pat,jim).

Как распечатать все пары?

everybody:-

          parent(X,Y),

          write(X),write(' есть родитель '),write_ln(Y),

          fail.

everybody.

?-  everybody.

pam есть родитель bob

tom есть родитель bob

tom есть родитель lis



bob есть родитель ann

bob есть родитель pat

pat есть родитель jim

Yes



Содержание раздела