logo search
TurboProlog / Документация / TOM_1

Синтаксис правил

Правила используются в Прологе в случае, когда какой-либо факт зави-

сит от истинности другого факта или группы фактов. Как мы объясняли в

Главе 3, в правиле Пролога есть три части: заголовок, тело и разделяющий

их знак "if" или ":-". Ниже представлен обобщенный синтаксис правила в

Турбо Прологе:

Заголовок :- <Подцель>, <Подцель>, ..., <Подцель>.

Тело правила, идущее вслед за заголовком и знаком "if", состоит из

одной или более подцелей. Подцели разделяются запятыми (или словом and),

а последняя подцель правила ограничена точкой.

Каждая подцель выполняет вызов другого предиката Пролога. После то-

го, как программа осуществила этот вызов, Турбо Пролог проверяет истин-

ность вызванного предиката, и если это так, то работа продолжается, но

уже со следующей подцелью. Если же в процессе такой работы была достигну-

та точка, то все правило считается истинным.

Для успешного разрешения правила Пролог должен разрешить все его

подцели и создать последовательный список переменных, должным образом

"связав" их. Если же одна из подцелей ложна, Пролог вернется назад для

поиска альтернативы предыдущей подцели, а затем вновь двинется вперед, но

уже с другими значениями переменных. Этот процесс называется "поиск с

возвратом". Исчерпывающее обсуждение данного процесса и того, как Пролог

ищет решения - приводится в Главе 5.