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

Prolog复合项合一问题:uncle(brother(W), Q)与uncle(john, mother(S))能否合一

Prolog复合项合一问题解答

核心合一规则先明确

Prolog中任意两个项可合一的判定标准如下:

  • 两个原子/常量:仅当二者完全相等时可合一
  • 单个自由变量:可与任意项合一,合一后变量绑定为对应项
  • 两个复合项:需同时满足三个要求:
    • 顶层函子名称完全一致
    • 函子的元数(参数数量)完全一致
    • 所有对应位置的参数可逐一合一,且各参数的绑定替换不存在冲突

目标项合一校验过程

本次需要校验的两个复合项为:uncle(brother(W), Q) 和 uncle(john, mother(S))

第一步:顶层结构校验

两个项的顶层函子均为uncle,元数均为2,符合复合项合一的前两个要求,继续校验对应位置参数。

第二步:第一个参数位置校验

第一个位置的两个参数分别为:

  • 左侧:brother(W),属于带参数的复合项,函子名为brother,元数为1
  • 右侧:john,属于无结构的原子常量
    两个参数均不是自由变量,且结构完全不匹配,直接触发合一失败,无需继续校验第二个参数。
    最终结论:两个复合项无法合一。

函子与原子合一的常见误区

你疑惑的函子(复合项)和原子能否合一,只有一种情况成立:二者其中一方是自由变量。举例:

  • 自由变量X和brother(W)可合一,绑定关系为X = brother(W)
  • 自由变量X和john可合一,绑定关系为X = john
    如果双方都不是自由变量,复合项和原子的结构天然不兼容,永远无法合一,本次校验的第一个参数就属于这种情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 20:54:04