Clauses. Person (”Иванов И.И. любит заниматься спортом”)

Information(Х):- person(Х).

Person (”Иванов И.И. любит заниматься спортом”).

Person (”Петров П.П. любит играть на гитаре”).

Person (”Васечкин В.В. любит прогулки на природе”).

Если сформулировать внешний целевой запрос:

Goal: information(Х),

то Пролог-система выдаст ответы в стандартной форме:

Х= “Иванов И.И. любит заниматься спортом”

Х=” Петров П.П. любит играть на гитаре”

Х= “Васечкин В.В. любит прогулки на природе”

Solution

Как следует модифицировать программу, чтобы получить сразу весь список людей, которые чем-то увлечены? Как организовать вывод в желаемой форме, а не использовать стандартный вывод? Один из путей заключается в использовании предиката fail для организации возврата.

Внесем следующие изменения в программу:

Clauses

Information1:- person (Х), write(X), nl, fail.

/*fail добавлен к правилу*/

Information1:- write(”конец”), nl.

/*второе правило – завершающее условие*/

Person (”Иванов И.И. любит заниматься спортом”).

Person (”Петров П.П. любит играть на гитаре”).

Person (”Васечкин В.В. любит прогулки на природе”).

В первое правило information1 включен предикат fail, который констатирует неудачу и порождает возврат к получению нового решения. Во втором правиле information1 содержится завершающее условие, которое обеспечивает успешное завершение выполнения всего правила.

Если сформулировать внешний целевой запрос:


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: