Составители:
Рубрика:
56
соседями две выбранные страны. Предположим, вы хотите знать, граничат
ли между собой Германия и Испания. Запрос формулируется так:
not (border("Germany", "Spain")).
Ответом на запрос явится True, так как согласно имеющимся в базе
данных фактам, эти страны общей границы не имеют. Рассмотрим теперь
другой запрос:
not (border("France", "Italy")).
Ответом на него будет False, так как
Франция и Италия соседи.
* Упражнение
3.6. Переделайте программу для работы с внешними целями. В
ответ на приглашение Goal: введите not(border("Spain","Italy")).
Каким будет ответ ?
3.3.6 Использование составных объектов
Объекты утверждений представляют собой данные, тип же простых
объектов ограничен 6 типами доменов. Рассмотрим такой пример утвержде-
ния:
owner("Mary","Garfield"). /* У Мери есть Гарфильд */
Первый объект Mary имеет простую структуру; он представляет сам
себя. То же можно сказать и про объект Garfield. Любой объект, пред-
ставляющий сам себя, называется простым объектом.
Аналогично, структура,
состоящая из простых объектов, называется простой структурой.
Утверждение owner отражает тот факт, что Mary обладает Garfield, ко-
торый может быть либо именем домашнего животного Mary, либо названи-
ем книги. Для разделения этих случаев утверждение можно записать в фор-
ме, более определенно описывающей объект:
owner("Mary",pet("Garfield")). /* У Мери есть любимец -
Гарфильд */
owner("Mary",book("Garfield")). /* У Мери есть книга - "Гарфильд" */
Объект, представляющий другой объект или совокупность объектов,
называется составным объектом. Записанные же таким образом предикаты
owner называются составными структурами, поскольку они скомпонованы из
составных объектов. В данном примере pet представляет Garfield в первом
утверждении, в то время как book - во втором, здесь pet и
book являются со-
ставными объектами. Отметим, что объекты, которые они представляют,
заключены в скобки.
Утверждение
likes("Tom",apples,orange,banana).
констатирует, что Том любит фрукты: яблоки, апельсины и бананы. Все эти
три вида фруктов можно объединить в отдельной структуре:
fruits(apples,orange,banana).
В результате появляется составной объект, который поясняет отноше-
ние:
likes("Tom",fruits(apples,orange,banana)).
(Oбратите внимание на
двойные скобки в конце утверждения.)
соседями две выбранные страны. Предположим, вы хотите знать, граничат
ли между собой Германия и Испания. Запрос формулируется так:
not (border("Germany", "Spain")).
Ответом на запрос явится True, так как согласно имеющимся в базе
данных фактам, эти страны общей границы не имеют. Рассмотрим теперь
другой запрос:
not (border("France", "Italy")).
Ответом на него будет False, так как Франция и Италия соседи.
* Упражнение
3.6. Переделайте программу для работы с внешними целями. В
ответ на приглашение Goal: введите not(border("Spain","Italy")).
Каким будет ответ ?
3.3.6 Использование составных объектов
Объекты утверждений представляют собой данные, тип же простых
объектов ограничен 6 типами доменов. Рассмотрим такой пример утвержде-
ния:
owner("Mary","Garfield"). /* У Мери есть Гарфильд */
Первый объект Mary имеет простую структуру; он представляет сам
себя. То же можно сказать и про объект Garfield. Любой объект, пред-
ставляющий сам себя, называется простым объектом. Аналогично, структура,
состоящая из простых объектов, называется простой структурой.
Утверждение owner отражает тот факт, что Mary обладает Garfield, ко-
торый может быть либо именем домашнего животного Mary, либо названи-
ем книги. Для разделения этих случаев утверждение можно записать в фор-
ме, более определенно описывающей объект:
owner("Mary",pet("Garfield")). /* У Мери есть любимец - Гарфильд */
owner("Mary",book("Garfield")). /* У Мери есть книга - "Гарфильд" */
Объект, представляющий другой объект или совокупность объектов,
называется составным объектом. Записанные же таким образом предикаты
owner называются составными структурами, поскольку они скомпонованы из
составных объектов. В данном примере pet представляет Garfield в первом
утверждении, в то время как book - во втором, здесь pet и book являются со-
ставными объектами. Отметим, что объекты, которые они представляют,
заключены в скобки.
Утверждение
likes("Tom",apples,orange,banana).
констатирует, что Том любит фрукты: яблоки, апельсины и бананы. Все эти
три вида фруктов можно объединить в отдельной структуре:
fruits(apples,orange,banana).
В результате появляется составной объект, который поясняет отноше-
ние:
likes("Tom",fruits(apples,orange,banana)).
(Oбратите внимание на двойные скобки в конце утверждения.)
56
Страницы
- « первая
- ‹ предыдущая
- …
- 54
- 55
- 56
- 57
- 58
- …
- следующая ›
- последняя »
