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

UptoLike

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

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