TURBO PROLOG. Терёхин В.В. - 59 стр.

UptoLike

Составители: 

59
именами author и publisher. (Напомним, что подчерк замещает собой ано-
нимную переменную.)
Следующие два упражнения познакомят Вас с использованием целе-
вых утверждений различных типов.
* Упражнения
3.7. Вы хотите задать вопрос: Как зовут коллекционера, которому при-
надлежит книга под названием "Database.A Primer." ? Этот запрос в Турбо-
Прологе формулируется в виде
collection(Collector,book("Database:A Primer",_,_,_)).
Что получится ?
3.8. Вы хотите задать вопрос: Каковы названия книг, опубликованных
после 1980 года ? Целевая конструкция для этого вопроса выглядит так:
collection(_,book(Title,_,_,Year)),Year > 1980.
Что получится ?
Программа "Библиотека - 2" (листинг 3.8) демонстрирует использова-
ние трехуровневой доменной структуры и четырехуровневой предикатной.
____________________________________________________________
Листинг 3.8
/* Программа: Библиотека -2 */
/* Назначение: Демонстрация двухуровневого составного */
/* объекта. */
domains
personal_library = book(title,author,publication)
publication = publication(publisher,year)
collector,title,author,publisher = symbol
year = integer
predicates
collection(collector,personal_library)
clauses
collection("Kahn",
book("The Computer and the Brain",
"von Neumann",
publication("Yale University Press", 1958))).
collection("Kahn",
book("Symbolic Logic",
"Lewis Carroll",
publication("Dower Publications", 1958))).
collection("Johnson",
book("Database: A Primer",
"C.J.Date",
publication("Addison-Wesley", 1983))).
именами author и publisher. (Напомним, что подчерк замещает собой ано-
нимную переменную.)
     Следующие два упражнения познакомят Вас с использованием целе-
вых утверждений различных типов.

* Упражнения
     3.7. Вы хотите задать вопрос: Как зовут коллекционера, которому при-
надлежит книга под названием "Database.A Primer." ? Этот запрос в Турбо-
Прологе формулируется в виде
      collection(Collector,book("Database:A Primer",_,_,_)).
Что получится ?
     3.8. Вы хотите задать вопрос: Каковы названия книг, опубликованных
после 1980 года ? Целевая конструкция для этого вопроса выглядит так:
     collection(_,book(Title,_,_,Year)),Year > 1980.
Что получится ?

      Программа "Библиотека - 2" (листинг 3.8) демонстрирует использова-
ние трехуровневой доменной структуры и четырехуровневой предикатной.
____________________________________________________________
                    Листинг 3.8
/* Программа: Библиотека -2           */
/* Назначение: Демонстрация двухуровневого составного */
/*            объекта.                             */
domains
      personal_library = book(title,author,publication)
      publication = publication(publisher,year)
      collector,title,author,publisher = symbol
      year = integer

predicates
      collection(collector,personal_library)

clauses
      collection("Kahn",
                  book("The Computer and the Brain",
                  "von Neumann",
                  publication("Yale University Press", 1958))).
      collection("Kahn",
            book("Symbolic Logic",
            "Lewis Carroll",
            publication("Dower Publications", 1958))).
      collection("Johnson",
            book("Database: A Primer",
            "C.J.Date",
            publication("Addison-Wesley", 1983))).


                                                                         59