Составители:
Рубрика:
63
personal_records("Bill",record("Elton John",
"Ice of Fire","popular")).
Программа "Предметы" использует 3 доменные структуры. Первой из
них является misc_thing, единственный объект которой назван whatever.
Bторая структура имеет имя book; ее объекты - это author и title. Третьей
структурой является record; она скомпонована из трех объектов: artist,
album и type.
Объекты всех трех структур относятся к типу symbol. Все три объеди-
нены
под именем thing. Описанием этого домена является
thing = misc_thing(whatever) ;
book(author,title) ;
record(artist,album,type)
Для разделения альтернативных доменов здесь применена точка с запя-
той (;).
Для связи персоны и того, чем эта персона обладает, введен очень
простой предикат:
person(person, things)
Использование альтернативных доменов позволяет писать в утвержде-
ниях предикат owns применительно к различным классам вещей. В отсутст-
вие этой конструкции требовалось бы ввести уже три предиката, как это
видно из приведенного фрагмента.
Попробуйте обратиться к программе "Предметы" с таким целевым
предложением:
owns(P,misc_thing(T)).
Перевод этого запроса на естественный язык выглядит так: "Пере-
числите все возможные вещи, которыми кто-либо обладает." Интересно по-
пробовать и запросы owns(_,book(A,T)) и owns(P,record(_,A,_)).
Заметим
, что термы misc_thing, book и record являются именами
структур. Однако когда они появляются в предикатных выражениях, то од-
новременно играют и роль имен функторов.
Турбо-Пролог не делает различия между функтором и доменной
структурой. Это средство введено в Турбо-Пролог преднамеренно, так как
оно очень удобно именно в декларативных языках.
* Упражнения
3.11. Запустите программу "Предметы" и введите внешнюю цель
owns(_,book(_,T)).
Какой текст появится на экране ? Сформулируйте запрос на естественном
языке.
3.12. Повторите запуск программы со следующей внешней целью:
owns(P,record(_,A,_)).
Что можно будет увидеть на экране ? Сформулируйте данный запрос на
естественном языке.
personal_records("Bill",record("Elton John",
"Ice of Fire","popular")).
Программа "Предметы" использует 3 доменные структуры. Первой из
них является misc_thing, единственный объект которой назван whatever.
Bторая структура имеет имя book; ее объекты - это author и title. Третьей
структурой является record; она скомпонована из трех объектов: artist,
album и type.
Объекты всех трех структур относятся к типу symbol. Все три объеди-
нены под именем thing. Описанием этого домена является
thing = misc_thing(whatever) ;
book(author,title) ;
record(artist,album,type)
Для разделения альтернативных доменов здесь применена точка с запя-
той (;).
Для связи персоны и того, чем эта персона обладает, введен очень
простой предикат:
person(person, things)
Использование альтернативных доменов позволяет писать в утвержде-
ниях предикат owns применительно к различным классам вещей. В отсутст-
вие этой конструкции требовалось бы ввести уже три предиката, как это
видно из приведенного фрагмента.
Попробуйте обратиться к программе "Предметы" с таким целевым
предложением:
owns(P,misc_thing(T)).
Перевод этого запроса на естественный язык выглядит так: "Пере-
числите все возможные вещи, которыми кто-либо обладает." Интересно по-
пробовать и запросы owns(_,book(A,T)) и owns(P,record(_,A,_)).
Заметим, что термы misc_thing, book и record являются именами
структур. Однако когда они появляются в предикатных выражениях, то од-
новременно играют и роль имен функторов.
Турбо-Пролог не делает различия между функтором и доменной
структурой. Это средство введено в Турбо-Пролог преднамеренно, так как
оно очень удобно именно в декларативных языках.
* Упражнения
3.11. Запустите программу "Предметы" и введите внешнюю цель
owns(_,book(_,T)).
Какой текст появится на экране ? Сформулируйте запрос на естественном
языке.
3.12. Повторите запуск программы со следующей внешней целью:
owns(P,record(_,A,_)).
Что можно будет увидеть на экране ? Сформулируйте данный запрос на
естественном языке.
63
Страницы
- « первая
- ‹ предыдущая
- …
- 61
- 62
- 63
- 64
- 65
- …
- следующая ›
- последняя »
