Составители:
Рубрика:
39
Имя do_menu более специфично, оно может служить в качестве имени
правила, создающего меню. Предикаты подобные только что приведенным
обычно называют "голыми", поскольку у них отсутствуют объекты.
Однако, в большинстве случаев, особенно, когда правило используется
в качестве подцели другого правила, значения переменных одного из пра-
вил используются при попытке удовлетворить другое.
Так, значение Х из ле-
вой части правила
likes(beth, X) if
likes(mary, X).
используются при попытке удовлетворить правую часть.
В подобных случаях объекты предикатов определяются при описании
этих правил в разделе программы predicates:
predicates
likes(symbol,symbol)
book(symbol,symbol,integer)
/* книга (название, автор, количество страниц) */
person(symbol,char,integer)
/* некто (имя, пол (м или ж), возраст) */
do_search(integer)
sum(real, real, real, real)
Заметим, что перечень объектов предиката заключается в круглые
скобки, а в качестве разделителя используется запятая. Так предикат likes
имеет два объекта, каждый из которых относится к базисному типу symbol.
Этот предикат можно использовать для создания утверждений типа
likes(mary,
peaches).
likes(john, plums).
likes(jack,oranges).
Поскольку все термы : mary, peaches, john, plums, jack и oranges удов-
летворяют требованиям, предъявляемым к символическим именам, то эти
утверждения не противоречат описанию предиката в разделе predicates.
Ввиду того, что Вы используете стандартные базисные типы доменов,
нет необходимости отдельно описывать домены объектов
этих утверждений.
Если, однако, задаться целью явно описать все домены объектов, исполь-
зуемые предикатами, то в разделах domains и predicates в этом случае долж-
ны были бы появиться следующие предложения:
domains
name, fruit = symbol
predicates
likes(name,fruit)
C описаниями подобного рода работать достаточно легко, так как имя
домена
name сразу же наводит на мысль об именах людей, а fruit - о названи-
ях фруктов. Правда, эти описания не возбраняют написать и такое утвер-
ждение, как likes(mary,rain), так как предикат допускает использование лю-
бого объекта, коль скоро он представляет собой символическое имя, хотя
бы утверждение и выглядело странно. rain (дождь
) трудно зачислить в раз-
Имя do_menu более специфично, оно может служить в качестве имени
правила, создающего меню. Предикаты подобные только что приведенным
обычно называют "голыми", поскольку у них отсутствуют объекты.
Однако, в большинстве случаев, особенно, когда правило используется
в качестве подцели другого правила, значения переменных одного из пра-
вил используются при попытке удовлетворить другое. Так, значение Х из ле-
вой части правила
likes(beth, X) if
likes(mary, X).
используются при попытке удовлетворить правую часть.
В подобных случаях объекты предикатов определяются при описании
этих правил в разделе программы predicates:
predicates
likes(symbol,symbol)
book(symbol,symbol,integer)
/* книга (название, автор, количество страниц) */
person(symbol,char,integer)
/* некто (имя, пол (м или ж), возраст) */
do_search(integer)
sum(real, real, real, real)
Заметим, что перечень объектов предиката заключается в круглые
скобки, а в качестве разделителя используется запятая. Так предикат likes
имеет два объекта, каждый из которых относится к базисному типу symbol.
Этот предикат можно использовать для создания утверждений типа
likes(mary,peaches).
likes(john, plums).
likes(jack,oranges).
Поскольку все термы : mary, peaches, john, plums, jack и oranges удов-
летворяют требованиям, предъявляемым к символическим именам, то эти
утверждения не противоречат описанию предиката в разделе predicates.
Ввиду того, что Вы используете стандартные базисные типы доменов,
нет необходимости отдельно описывать домены объектов этих утверждений.
Если, однако, задаться целью явно описать все домены объектов, исполь-
зуемые предикатами, то в разделах domains и predicates в этом случае долж-
ны были бы появиться следующие предложения:
domains
name, fruit = symbol
predicates
likes(name,fruit)
C описаниями подобного рода работать достаточно легко, так как имя
домена name сразу же наводит на мысль об именах людей, а fruit - о названи-
ях фруктов. Правда, эти описания не возбраняют написать и такое утвер-
ждение, как likes(mary,rain), так как предикат допускает использование лю-
бого объекта, коль скоро он представляет собой символическое имя, хотя
бы утверждение и выглядело странно. rain (дождь) трудно зачислить в раз-
39
Страницы
- « первая
- ‹ предыдущая
- …
- 37
- 38
- 39
- 40
- 41
- …
- следующая ›
- последняя »
