Procedure

Предикаты этого вида всегда завершаются успешно и имеют одно решение.

Multi

Такой предикат не может завершиться неудачно, при этом он имеет множество решений.

Nondeterm

Недетерминированный предикат может завершиться либо неудачно, либо успешно, и при этом иметь множество решений.

Если предикат имеет много решений и одно из его решений не в состоянии удовлетворить другой предикат в той же конъюнкции, то Пролог осуществляет откат (backtrack) и предлагает другое решение в попытке удовлетворить эту конъюнкцию.

Примеры.

gr_father: (symbol, symbol) nondeterm anyflow.

factorial: (integer,integer) procedure(i,o).

Раздел clauses

Этот раздел состоит из правил. Правила записываются в формате:

H:- T1, T2, T3, …

и читаются таким образом: предикат H выполняется, если выполняются все из перечисленных условий T1, T2, T3 и т.д.

Раздел goal

В этом разделе формулируется вопрос и потому он называется разделом целей. Если цель расположена в тексте программы, то она называется внутренней, если в окне диалога, то внешней. Внешняя цель дает возможность получать все решения задачи, внутренняя – только первое.

Для удобства чтения программы в Прологе предусмотрены комментарии:

% – комментарий до конца строки;

/* текст, который не является программой */ – длинный комментарий.

Примеры построения правил


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



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