You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Prolog中定义‘as long as’(只要)逻辑判断规则?

Prolog中「只要」逻辑关系实现方法

Prolog的规则语法天生就对应「只要A成立,B就成立」的as long as逻辑,语法格式为 B :- A.,读作“B成立的前提是A成立”,和你需要的语义完全匹配。

你提到的兄弟逻辑实现示例

1. 先定义基础事实

我们先录入父母关系的基础数据:

% 事实定义格式:parent(子女, 父母)
parent(sam, tom).
parent(sam, lily).
parent(jane, tom).
parent(jane, lily).
parent(bob, tom).
parent(bob, anna).

2. 定义「只要父母相同就是兄弟」的规则

% X是Y的兄弟,只要满足两个条件:
% 1. X和Y不是同一个人
% 2. 存在至少一个家长P,同时是X和Y的父母
brother(X, Y) :-
    X \= Y,
    parent(X, P),
    parent(Y, P).

3. 验证查询

你要确认sam是不是jane的兄弟,直接在Prolog控制台输入查询语句:
?- brother(sam, jane).
程序会返回 true.,符合你的预期。

如果需要严格限定为同父同母的亲兄弟,调整规则即可:

full_brother(X, Y) :-
    X \= Y,
    parent(X, Father),
    parent(X, Mother),
    Father \= Mother,
    parent(Y, Father),
    parent(Y, Mother).

内容的提问来源于stack exchange,提问作者ano

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 19:15:04