ВУЗ:
Составители:
Рубрика:
29
можно использовать для того, чтобы передавать целый набор значений, как
единый объект, а затем применять унификацию для их разделения.
Пример 22: Необходимо создать БД, содержащую сведения о книгах из
личной библиотеки. Зададим составной терм с именем personal_library,
имеющим следующую структуру: personal_library= book (title, author,
publisher, year), и предикат collection (collector, personal_library). Терм book
называется функтором структуры данных. Пример программы,
использующей составные
термы для описания личной библиотеки и поиска
информации о книгах, напечатанных в 1990 году, выглядит следующим
образом:
domains
collector, title, author, publisher = symbol
year = integer
personal_library = book (title, author, publisher, year)
predicates
collection (collector, personal_library)
clauses
collection (irina, book («Using Turbo Prolog», «Yin with Solomon»,
«Moscow, World», 1993)).
collection (petr, book («The art of Prolog», «Sterling with Shapiro»,
»Moscow, World», 1990)).
collection (anna, book («Prolog: a relation language and its applications»,
«John Malpas», »Moscow, Science», 1990)).
goal
collection (X, book( Y,_, _, 1990)
В данном случае переменная Y используется для унификации части
составного терма.Если цель задать в виде:
collection (X, Z),Z=book( Y,_, _, 1990), то простая переменная Z
унифицируется с сотавным термом book.
Представление данных
часто требует наличия большого числа
структур. В Прологе эти структуры должны быть описаны. Для более
компактного описания структур данных в Прологе предлагается
использование альтернативных описаний доменов.
Пример 23: Необходимо создать БД, содержащую сведения о книгах и
аудиозаписях из личной библиотеки.
domains
person, title, author, artist, album, type = symbol
thing = book (title, author); record (artist, album, type)
predicates
owns (person, thing)
clauses
owns (irina, book («Using Turbo Prolog», «Yin with Solomon»)).
owns (petr, book («The art of Prolog», «Sterling with Shapiro»)).
Страницы
- « первая
- ‹ предыдущая
- …
- 27
- 28
- 29
- 30
- 31
- …
- следующая ›
- последняя »