- 序言教程
- 序言 - 主页
- Prolog - 简介
- Prolog - 环境设置
- Prolog - 你好世界
- Prolog - 基础知识
- Prolog - 关系
- Prolog - 数据对象
- Prolog - 运算符
- 循环与决策
- 连接词和析取词
- Prolog - 列表
- 递归和结构
- Prolog - 回溯
- Prolog - 不同与不同
- Prolog - 输入和输出
- Prolog - 内置谓词
- 树数据结构(案例研究)
- Prolog - 示例
- Prolog - 基本程序
- Prolog - 剪切示例
- 河内塔问题
- Prolog - 链接列表
- 猴子和香蕉问题
- Prolog 有用资源
- Prolog - 快速指南
- Prolog - 有用的资源
- Prolog - 讨论
Prolog - 连词与析取
在本章中,我们将讨论合取和析取性质。这些属性在其他编程语言中使用 AND 和 OR 逻辑。Prolog 在其语法中也使用相同的逻辑。
连词
可以使用逗号 (,) 运算符来实现连接(AND 逻辑)。因此,用逗号分隔的两个谓词用 AND 语句连接起来。假设我们有一个谓词parent(jhon, bob),这意味着“Jhon是Bob的父母”,另一个谓词male(jhon),这意味着“Jhon是男性”。所以我们可以做另一个谓词father(jhon,bob),这意味着“Jhon是Bob的父亲”。当他是父母并且他是男性时,我们可以定义谓词father。
析取
析取(OR 逻辑)可以使用分号(;)运算符来实现。因此,用分号分隔的两个谓词用 OR 语句连接起来。假设我们有一个谓词,father(jhon, bob)。这表明“Jhon 是 Bob 的父亲”,另一个谓词mother(lili,bob)表明“lili 是 bob 的母亲”。如果我们创建另一个谓词child() ,则当father(jhon, bob)为真或 mother(lili,bob)为真时,这将为真。
程序
parent(jhon,bob). parent(lili,bob). male(jhon). female(lili). % Conjunction Logic father(X,Y) :- parent(X,Y),male(X). mother(X,Y) :- parent(X,Y),female(X). % Disjunction Logic child_of(X,Y) :- father(X,Y);mother(X,Y).
输出
| ?- [conj_disj]. compiling D:/TP Prolog/Sample_Codes/conj_disj.pl for byte code... D:/TP Prolog/Sample_Codes/conj_disj.pl compiled, 11 lines read - 1513 bytes written, 24 ms yes | ?- father(jhon,bob). yes | ?- child_of(jhon,bob). true ? yes | ?- child_of(lili,bob). yes | ?-