Prolog 中的变量2024 年 8 月 29 日 | 阅读 3 分钟 变量可以在子句的头部或主体中使用。变量也可以在目标中使用,这些目标是在系统提示符处输入的。 目标中的变量在目标中,变量可以被解释为“查找使目标满足的变量值”。 例如 上面的目标可以解读为“查找 X 的值,使 large_animal(X) 满足”。 以下示例,动物程序 3 显示了动物程序的第三个版本。此示例与 动物程序 2 相同,但它有一些额外的规则,如下所示 以下显示了一个目标 上述目标描述了为了满足 chases(A, B),找到 A 和 B 的值。 为了满足上述目标,Prolog 将搜索所有子句,直到找到匹配的子句。对子句的搜索将从上到下进行。在该子句的主体中,它将逐个处理目标,它将从左到右工作,并尝试依次满足每一个目标。 以下示例显示了在提示符处输入的一些典型目标以及动物程序 3 的输出。 我们无法通过回溯来阻止生成相同答案多次。 例如 使用回溯,查询 ?-chases(dane, A) 会在三个答案中产生两个相同的答案。 变量的词法作用域以下子句显示: 在上面的子句中,A 和 B 变量的出现可以一致地替换为任何其他变量,例如 First_person 和 Second_person。 以上操作不会更改用户的程序或子句的含义。 全称量化变量在事实或规则中,如果出现一个变量,则表示该事实或规则适用于所有可能的变量值。 例如 存在量化变量假设数据库包含各种子句 上面的例子有六个子句。这些子句定义了 person/5 谓词的定义。它有 5 个参数,具有明显的解释,例如人的名字、姓氏、性别、年龄和职业。 规则由最后一个子句定义。 它有一个谓词“person”。 这些规则意味着“对于所有 X,如果 A 是人,并且 X 是性别为男性的某人,则 X 是人。”在子句的头部,变量 X 代表“对于所有 X”,它被称为全称量化。 下一主题满足 Prolog 中的目标 |
我们请求您订阅我们的新闻通讯以获取最新更新。