Скачиваний:
201
Добавлен:
17.06.2016
Размер:
2.69 Mб
Скачать

Секция предикатов

Если в секции clauses программы на Турбо Прологе вы описали собст-

венный предикат, то вы обязаны объявить этот предикат в секции

predicates; в противном случае Турбо Пролог не поймет, о чем вы ему гово-

рите. В результате объявления предиката вы сообщаете Турбо Прологу, к ка-

ким доменам (типам) принадлежат аргументы этого предиката.

Турбо Пролог поставляется с богатым набором встроенных предикатов,

некоторые из которых вы уже использовали (write, makewindow, nl и т.д.).

Вам не нужно объявлять какие-либо встроенные предикаты Турбо Пролога, ис-

пользуемые в вашей программе. (Справочное руководство по Турбо Прологу

представляет полное описание всех встроенных предикатов.)

Предикаты задают факты и правила. В секции же программы predicates

все предикаты просто перечисляются с указанием типов (доменов) их аргу-

ментов. Хотя сердцем программы является секция clauses, эффективность ра-

боты Турбо Пролога значительно возрастает именно из-за того, что вы объ-

являете типы объектов (аргументов), с которыми работают ваши факты и пра-

вила.

Как объявить предикат пользователя

Объявление предиката начинается с имени этого предиката, за которым

следует открывающая (левая) круглая скобка, после чего следует ноль или

больше типов аргументов предиката.

predicateName (argument_type1, argument_type2,..., argument_typeN)

После каждого типа аргумента следует запятая, а после последнего ти-

па аргумента - закрывающая (правая) скобка. Отметим, что, в отличие от

предложений в секции вашей программы clauses, декларация предиката не за-

вершается точкой. Типами аргументов предиката могут быть либо стандартные

домены, либо домены, объявленные вами в секции domains.

Имена предикатов

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

последовательность букв, цифр и символов подчеркивания. Регистр букв не

имеет значения, однако мы не советуем вам использовать заглавные буквы в

качестве первой буквы имени предиката. (Другие версии Пролога не разреша-

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

Турбо Пролога, возможно, тоже будут запрещать это.) Имя предиката может

иметь длину до 250 символов.

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

звездочку, прямую (и обратную) черту. Корректные имена Турбо Пролога мо-

гут включать следующие символы:

Заглавные буквы : A,B,...,Z

Строчные буквы : a,b,...,z

Цифры : 0,1,...,9

Символ подчеркивания: _

Имена предикатов и аргументов могут состоять из любых комбинаций

этих символов, при условии, конечно, что вы подчиняетесь правилам постро-

ения соответствующих имен.

-----------------------------------------------------------------

Корректные имена предикатов Некорректные имена предикатов

-----------------------------------------------------------------

fact [fact]

is_a *is_a*

has_a has/a

patternCheckList pattern-Check-List

choose_Menn_Item choose Menn Item

predicateName predicate<Name>

first_in_10 >first_in_10

-----------------------------------------------------------------

Соседние файлы в папке Документация