Составители:
Рубрика:
34
popcorn=popcorn.
Сопоставление успешно, и последняя подцель правила успешно вычис-
лена. Переменная X в голове правила имеет значение popcorn. Таким
образом, выведенный факт есть likes(beth, popcorn). Турбо-Пролог
сообщает об этом, выдавая X=popcorn. Теперь найдены два решения, а ука-
затель отката остался на утверждении
likes(beth, popcorn).
Турбо-Пролог возвращается в указанную точку и пытается найти
еще одно решение.
Вспомним, что данный путь является альтернативным для второй под-
цели второго правила для likes. Следовательно, имеем подцель
likes(mary, X).
Так как X снова освобождена, то она получает значение apples и
подцель снова успешна. Хотя среди утверждений
для likes и не осталось
фактов, но еще остались два правила, так что указатель устанавливается на
факт likes(mary,apples). Возвратившись к следующей подцели, Турбо-Пролог
сравнивает X=popcorn или apples=popcorn. Иными словами, подцель неус-
пешна.
Снова внутренние унификационные подпрограммы выполняют откат к
голове правила likes(beth, X). Эта
голова правила не сопоставима с подцелью
likes(mary, X), управляющей данной попыткой использовать данный альтер-
нативный путь, поэтому унификационный механизм проверяет сопостави-
мость головы следующего правила. Эта голова правила также есть
likes(beth, X), поэтому снова из-за несопоставимости beth и mary, сопостав-
ление оказывается неудачным.
На этот раз правило
не смогло дать решение, и цель оказалась неус-
пешной. Ранее найдены два решения. Чтобы показать, что на этом процесс
завершен, Турбо-Пролог выдает сообщение Two solutions (Два решения).
2.5 Заключение
В данной главе Турбо-Пролог рассматривался на концептуальном
уровне. Как вы узнали, Турбо-Пролог является декларативным языком, осно-
ванным на логике
предикатов. Предикаты в общем случае определяют отно-
шения между объектами.
Факты и правила являются утверждениями, которые образуют данные
программы на Турбо-Прологе. Правила имеют левую часть (голову) и пра-
вую часть(тело). Левая часть правила истинна, если истинна правая часть
правила. Правила генерируют новые факты, когда все утверждения в теле
оказываются вычисленными.
Цели - это конструкции на основе предикатов, которые объявляют,
что должна доказать программа на Турбо-Прологе. Связки в целях и прави-
лах выполняют генерацию подцелей в качестве шага процесса доказательства
цели.
popcorn=popcorn.
Сопоставление успешно, и последняя подцель правила успешно вычис-
лена. Переменная X в голове правила имеет значение popcorn. Таким
образом, выведенный факт есть likes(beth, popcorn). Турбо-Пролог
сообщает об этом, выдавая X=popcorn. Теперь найдены два решения, а ука-
затель отката остался на утверждении
likes(beth, popcorn).
Турбо-Пролог возвращается в указанную точку и пытается найти
еще одно решение.
Вспомним, что данный путь является альтернативным для второй под-
цели второго правила для likes. Следовательно, имеем подцель
likes(mary, X).
Так как X снова освобождена, то она получает значение apples и
подцель снова успешна. Хотя среди утверждений для likes и не осталось
фактов, но еще остались два правила, так что указатель устанавливается на
факт likes(mary,apples). Возвратившись к следующей подцели, Турбо-Пролог
сравнивает X=popcorn или apples=popcorn. Иными словами, подцель неус-
пешна.
Снова внутренние унификационные подпрограммы выполняют откат к
голове правила likes(beth, X). Эта голова правила не сопоставима с подцелью
likes(mary, X), управляющей данной попыткой использовать данный альтер-
нативный путь, поэтому унификационный механизм проверяет сопостави-
мость головы следующего правила. Эта голова правила также есть
likes(beth, X), поэтому снова из-за несопоставимости beth и mary, сопостав-
ление оказывается неудачным.
На этот раз правило не смогло дать решение, и цель оказалась неус-
пешной. Ранее найдены два решения. Чтобы показать, что на этом процесс
завершен, Турбо-Пролог выдает сообщение Two solutions (Два решения).
2.5 Заключение
В данной главе Турбо-Пролог рассматривался на концептуальном
уровне. Как вы узнали, Турбо-Пролог является декларативным языком, осно-
ванным на логике предикатов. Предикаты в общем случае определяют отно-
шения между объектами.
Факты и правила являются утверждениями, которые образуют данные
программы на Турбо-Прологе. Правила имеют левую часть (голову) и пра-
вую часть(тело). Левая часть правила истинна, если истинна правая часть
правила. Правила генерируют новые факты, когда все утверждения в теле
оказываются вычисленными.
Цели - это конструкции на основе предикатов, которые объявляют,
что должна доказать программа на Турбо-Прологе. Связки в целях и прави-
лах выполняют генерацию подцелей в качестве шага процесса доказательства
цели.
34
Страницы
- « первая
- ‹ предыдущая
- …
- 32
- 33
- 34
- 35
- 36
- …
- следующая ›
- последняя »
