Составители:
Рубрика:
21
Как вы видите, этот факт сопоставим с подцелью. Таким образом,
подцель likes(mary,apples) оказывается успешно доказанной. Следовательно,
голова правила likes(beth, apples) имеет место. А так как голова правила ис-
тинна, то доказана истинность цели likes(beth, apples). Другими словами,
цель оказалась успешной. Новый факт был успешно выведен, хотя
он нигде
в программе явно указан не был.
2.3.3 Результат доказательства цели
Если цель likes(beth, apples) успешно доказана, то Турбо-Пролог
информирует об этом, выдавая сообщение True. Если бы целью было
likes(beth, oranges), а программа содержала бы те же факты и правила, то
эта цель была бы неуспешной, а сообщение было бы False.
На этом примере видно, что манипулирование данными
и управление
программой определяется фактами и правилами. В Турбо-Прологе факты и
правила называются утверждениями. Факт
finds(john, gold). /* Джон нашел золото */
является утверждением. Правило
is(john, rich) if finds(john, gold). /* Джон богат, если */
/* Джон нашел золото */
так же является утверждением. Так как головы утверждений, являющиеся
правилами, имеют форму фактов, то правила могут рассматриваться как фак-
ты. Но, тем не менее, различия между фактами и правилами весьма сущест-
венны, и это обстоятельство используется в данной книге.
В программе на Турбо-Прологе утверждения для одного и того же пре-
диката группируются вместе. Как это происходит, вы увидите в следующей
главе.
2.3.4 Связки и другие символы
Часто условия требуют более одной предпосылки. Например, "Джон и
Мэри женаты, если Мэри жена Джона и если Джон муж Мэри". На Турбо-
Прологе это правило записывается в виде:
married(john, mary) If wife(john, mary) and husband(mary, john).
Данное правило имеет два условия, соединенные словом and
(и). Используя терминологию Пролога, это есть связка двух условий, объе-
диненных словом
and. В Прологе вместо слова and часто используется за-
пятая (,). В Турбо-Прологе также используется слово and, однако примене-
ние запятой предпочтительнее, т.к. в этом случае чтение программы легче.
Кроме того, в Прологе используется так же специальный символ для слова
if (если). Это символ :- (двоеточие с последующим тире). Таким
образом, ес-
ли в программе на Турбо-Прологе вам встретиться символ :-, то читайте его
как "если", а запятую - как "и". С использованием символов для представле-
ния "и" и "если" отношение "женаты" (married) записывается в виде:
married(john, mary) :-
wife(john, mary),
Как вы видите, этот факт сопоставим с подцелью. Таким образом, подцель likes(mary,apples) оказывается успешно доказанной. Следовательно, голова правила likes(beth, apples) имеет место. А так как голова правила ис- тинна, то доказана истинность цели likes(beth, apples). Другими словами, цель оказалась успешной. Новый факт был успешно выведен, хотя он нигде в программе явно указан не был. 2.3.3 Результат доказательства цели Если цель likes(beth, apples) успешно доказана, то Турбо-Пролог информирует об этом, выдавая сообщение True. Если бы целью было likes(beth, oranges), а программа содержала бы те же факты и правила, то эта цель была бы неуспешной, а сообщение было бы False. На этом примере видно, что манипулирование данными и управление программой определяется фактами и правилами. В Турбо-Прологе факты и правила называются утверждениями. Факт finds(john, gold). /* Джон нашел золото */ является утверждением. Правило is(john, rich) if finds(john, gold). /* Джон богат, если */ /* Джон нашел золото */ так же является утверждением. Так как головы утверждений, являющиеся правилами, имеют форму фактов, то правила могут рассматриваться как фак- ты. Но, тем не менее, различия между фактами и правилами весьма сущест- венны, и это обстоятельство используется в данной книге. В программе на Турбо-Прологе утверждения для одного и того же пре- диката группируются вместе. Как это происходит, вы увидите в следующей главе. 2.3.4 Связки и другие символы Часто условия требуют более одной предпосылки. Например, "Джон и Мэри женаты, если Мэри жена Джона и если Джон муж Мэри". На Турбо- Прологе это правило записывается в виде: married(john, mary) If wife(john, mary) and husband(mary, john). Данное правило имеет два условия, соединенные словом and (и). Используя терминологию Пролога, это есть связка двух условий, объе- диненных словом and. В Прологе вместо слова and часто используется за- пятая (,). В Турбо-Прологе также используется слово and, однако примене- ние запятой предпочтительнее, т.к. в этом случае чтение программы легче. Кроме того, в Прологе используется так же специальный символ для слова if (если). Это символ :- (двоеточие с последующим тире). Таким образом, ес- ли в программе на Турбо-Прологе вам встретиться символ :-, то читайте его как "если", а запятую - как "и". С использованием символов для представле- ния "и" и "если" отношение "женаты" (married) записывается в виде: married(john, mary) :- wife(john, mary), 21
Страницы
- « первая
- ‹ предыдущая
- …
- 19
- 20
- 21
- 22
- 23
- …
- следующая ›
- последняя »