Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Организация повторения с использованием предиката fail



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

Рассмотрим простую БД, содержащую информацию о книгах.

clauses

book(“F_K”,“Posledniu iz mogikan”).

book(“F_K”,“Sledopyt”).

book(“Stivenson”,“Ostrov sokrovish”).

book(“F_K”,“Shpion”).

Цель: book(“F_K”,Y)

Пролог найдет все решения для переменной Y.

Посмотрим, как будет работать программа, если эту цель задать как внутреннюю в разделе goal.

goal

book(“F_K”,Y), write(Y), nl.

В этом случае получим только одно решение. Чтобы получить все решения при ответе на запрос из раздела goal можно воспользоваться предикатом fail следующим образом:

Предикат fail можно рассматривать как цель, которая никогда не удовлетворяется, и, таким образом, Пролог выдает все решения. Этот метод носит название метода отката после неудачи.

Общий вид правила, использующего этот метод:

правило для повторения:-

предикаты,

fail.





Дата публикования: 2015-10-09; Прочитано: 168 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...