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

UptoLike

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

50
"Родственники" (листинг 3.4) является конечной программой на Турбо-
Прологе, демонстрирующей использование перечисленных фактов и прави-
ла sister.
_____________________________________________________________
Листинг 3.4
/* Программа: Родственники Файл: PROG0304.PRO */
/* Назначение: Демонстрация конструкции правила. */
domains
person = symbol
predicates
male(person)
female(person)
parents(person,person,person)
sister(person,person)
who_is_the_sister
goal who_is_the_sister
clauses
/* факты */
male("Frank"). male("Sam").
female("Mary"). female("Debbie").
parents("Sam","Frank","Mary").
parents("Debbie","Frank","Mary").
/* правила */
who_is_the_sister if
sister(Sister,Brother),
write(Sister,
" is the sister of ",
Brother, "."),
nl.
sister(Sister,Brother) if
female(Sister),
parents(Sister,Father,Mother),
parents(Brother,Father,Mother).
/***** конец программы *****/
_____________________________________________________________
Программа "Родственники" содержит еще одно
правило: предикат
who_is_the_sister. who_is_the_sister является целью программы, ее единст-
венным целевым утверждением. Это правило определяется в разделе утвер-
ждений программы clauses. Ввиду того, что цель задается в виде правила,
точка входа раздела goal являет собой единственное целевое утверждение
без подцелей. Тело правила состоит из двух частей. Первая часть это прави-
ло sister. В качестве второй части - предпосылки - используется предикат
write, который выводит полученные правилом sister результаты. При разра-
"Родственники" (листинг 3.4) является конечной программой на Турбо-
Прологе, демонстрирующей использование перечисленных фактов и прави-
ла sister.
_____________________________________________________________
                 Листинг 3.4
/* Программа: Родственники          Файл: PROG0304.PRO */
/* Назначение: Демонстрация конструкции правила. */
           domains
                 person = symbol
           predicates
                 male(person)
                 female(person)
                 parents(person,person,person)
                 sister(person,person)
                 who_is_the_sister

goal who_is_the_sister
clauses
                     /* факты */
      male("Frank"). male("Sam").
      female("Mary"). female("Debbie").
      parents("Sam","Frank","Mary").
      parents("Debbie","Frank","Mary").
                    /* правила */
      who_is_the_sister if
             sister(Sister,Brother),
             write(Sister,
             " is the sister of ",
             Brother, "."),
             nl.
      sister(Sister,Brother) if
             female(Sister),
             parents(Sister,Father,Mother),
             parents(Brother,Father,Mother).
             /*****            конец программы *****/
_____________________________________________________________

       Программа "Родственники" содержит еще одно правило: предикат
who_is_the_sister. who_is_the_sister является целью программы, ее единст-
венным целевым утверждением. Это правило определяется в разделе утвер-
ждений программы clauses. Ввиду того, что цель задается в виде правила,
точка входа раздела goal являет собой единственное целевое утверждение
без подцелей. Тело правила состоит из двух частей. Первая часть это прави-
ло sister. В качестве второй части - предпосылки - используется предикат
write, который выводит полученные правилом sister результаты. При разра-


                                                                        50