Составители:
Рубрика:
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
Страницы
- « первая
- ‹ предыдущая
- …
- 48
- 49
- 50
- 51
- 52
- …
- следующая ›
- последняя »
