Составители:
Рубрика:
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
- …
- следующая ›
- последняя »
