满足目标总结

2025 年 3 月 17 日 | 阅读 1 分钟

下图显示了上一节中描述的方法。

Satisfying Goals Summary

图:评估目标序列

Prolog 依次评估目标。为此,它从左到右工作。如果所有目标都成功,则所有目标序列都成功。如果一个目标失败,Prolog 会返回到序列中前一个目标,并从右到左尝试满足它们。如果所有目标都失败,则整个序列失败。只要一个目标成功,Prolog 就会再次从左到右开始处理目标。

Satisfying Goals Summary

图:评估/重新评估目标

评估/重新评估目标的总结

为了找到目标,Prolog 从上到下搜索所有子句。 Prolog 在数据库中搜索直到找到一个。如果 Prolog 匹配到一个子句并且它是一个事实,则该目标成功。如果它是一个规则,则评估规则主体中的目标序列。如果它不是规则,Prolog 会继续搜索数据库以寻找更多匹配项。如果 Prolog 到达数据库的末尾,则该目标失败。


下一个主题Prolog 运算符