Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
3.12. Если принять такие определения
:- op(300, xfy, играет_в).
:- op(200, xfy, и).
то два следующих терма представляют собой синтаксически правильные объекты:
Tepм1 = джимми играет_в футбол и сквош
Терм1 = сьюзан играет_в теннис и баскетбол и волейбол
Как эти термы интерпретируются пролог-системой? Каковы их главные функторы и какова их структура?
3.13. Предложите подходящее определение операторов ("работает", "в", "нашем"), чтобы можно было писать предложения типа:
диана работает секретарем в нашем отделе.
а затем спрашивать:
?- Кто работает секретарем в нашем отделе.
Кто = диана
?- диана работает Кем.
Кем = секретарем в нашем отдела
3.14. Рассмотрим программу:
t(0+1, 1+0).
t(X+0+1, X+1+0).
t(X+1+1, Z):-
t(X+1, X1),
t(X1+1, Z).
Как данная программа будет отвечать на ниже перечисленные вопросы, если '+' — это (как обычно) инфиксный оператор типа yfx?
(a)?- t(0+1, А).
(b)?- t(0+1+1, В).
(с)?- t(1+0+1+1+1, С).
(d)?- t(D, 1+1+1+0).
3.15. В предыдущем разделе отношения между списка ми мы записывали так:
принадлежит(Элемент, Список),
конк(Список1, Список2, Список3),
удалить(Элемент, Список, НовыйСписок),...
Предположим, что более предпочтительной для нас является следующая форма записи:
Элемент входит_в Список,
конкатенация_списков Список1 и Список2
дает Список3,
удаление_элемента Элемент из_списка Список
дает НовыйСписок,...
Определите операторы "входит_в", "конкатенация_списков", "и" и т.д. таким образом, чтобы обеспечить эту возможность. Переопределите также и соответствующие процедуры.
Дата публикования: 2015-10-09; Прочитано: 181 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!