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

如何编写递归Prolog程序判断前两列表元素总数≤第三列表长度

Prolog递归程序实现

实现逻辑

采用纯递归方式实现,不依赖内置长度计算谓词,核心逻辑是同步缩减列表长度进行比较:

  • 当第一个和第二个列表都为空时,任意第三个列表都满足条件
  • 当第一个列表为空、第二个列表还有元素时,要求第三个列表同步有剩余元素继续递归比较
  • 当第一个列表还有元素时,要求第三个列表同步有剩余元素继续递归比较

实现代码

list([], [], _).
list([], [_|L2Tail], [_|L3Tail]) :- list([], L2Tail, L3Tail).
list([_|L1Tail], L2, [_|L3Tail]) :- list(L1Tail, L2, L3Tail).

测试验证

参考测试用例执行结果:

?- list([a,b,c],[1,2,3],[q,w,e,r]).
No

该结果符合预期:第一个列表长度3,第二个列表长度3,总长度6;第三个列表长度4,6>4不满足条件,返回No。
其他验证用例参考:

  • ?- list([a,b],[1],[x,y,z]). 返回 Yes(总长度3等于3)
  • ?- list([],[],[a]). 返回 Yes(总长度0≤1)
  • ?- list([a],[b,c],[]). 返回 No(总长度3>0)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 16:27:04