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

       

система может пытаться решить задачу


     pred4(X,Z):-

         pred4(X,Y),

         parent(Y,Z).

     pred4(X,Z):-

         parent(Y,Z).

?- pred4(tom,pat).

==>   бесконечный цикл

Данный пример показывает, как пролог- система может пытаться решить задачу таким способом, при котором решение никогда не будет достигнуто, хотя оно существует. Такая ситуация не является редкостью при программировании на Прологе (как и на других языках).

Рекомендации:

1) в первую очередь применяйте самое простое правило;

2) избегайте левой рекурсии.


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