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

标准Prolog(非SWI-Prolog)嵌套列表处理:实现cat/2统计谓词

标准Prolog cat/2谓词实现

功能说明

接收键值结构的嵌套列表作为输入,输出二元列表,第一个元素为所有键为0的对应值总和,第二个元素为所有键为1的对应值总和。

实现代码

% 空列表边界条件:两类值总和均为0
cat([], [0, 0]).

% 匹配键为0的子列表,累加对应值到0类总和
cat([[0, Value] | Tail], [Total0, Total1]) :-
    cat(Tail, [SubTotal0, SubTotal1]),
    Total0 is SubTotal0 + Value,
    Total1 is SubTotal1.

% 匹配键为1的子列表,累加对应值到1类总和
cat([[1, Value] | Tail], [Total0, Total1]) :-
    cat(Tail, [SubTotal0, SubTotal1]),
    Total0 is SubTotal0,
    Total1 is SubTotal1 + Value.

使用示例

输入查询(注意标准Prolog列表元素用逗号分隔,若你原示例用空格分隔需先调整格式):
cat([[0,1], [1,2], [1,3], [0,4], [0,3]], Result).
输出结果:
Result = [8, 5]

说明

本实现完全遵循ISO标准Prolog规范,未使用任何SWI-Prolog专属扩展,可在所有兼容标准Prolog的环境中运行。

内容的提问来源于stack exchange,提问作者Jose Luis Landivar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 16:06:04