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

Prolog中定义son规则的更简洁实现方式

你可以通过Prolog的析取运算符;直接合并两条规则的分支逻辑,不需要新增额外规则,合并后的写法如下:

% Son
son(X, Y) :-
    male(X),
    (father(Y, X); mother(Y, X)).

说明

  • 括号用于明确逻辑优先级,保证先完成male(X)的校验,再依次尝试匹配father(Y, X)和mother(Y, X),完全符合你期望的执行顺序:先判定X为男性,再依次校验Y是父亲、母亲的条件。
  • 该写法和你原本拆分的两条规则语义完全等价,不会改变查询的返回结果,后续如果需要新增其他父/母类的亲属判定,也只需要在括号内新增析取分支即可,不用重复编写male(X)判断。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 17:57:01