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

如何在Prolog中提取列表从指定元素开始的子列表?

Prolog 提取指定元素起始子列表实现

实现逻辑

我们定义一个三参数谓词 sublist_from_element/3,参数依次为指定目标元素、原始列表、输出子列表,规则如下:

  • 如果原始列表的第一个元素就是目标元素,那么输出子列表就是当前的原始列表
  • 如果第一个元素不是目标元素,跳过该元素,递归处理列表剩余部分即可

完整代码

% 匹配首元素为目标元素的情况,直接返回当前列表作为结果
sublist_from_element(Target, [Target|Remain], [Target|Remain]).
% 首元素不匹配,递归处理剩余列表
sublist_from_element(Target, [_|Remain], Result) :-
    sublist_from_element(Target, Remain, Result).

使用示例

直接在Prolog交互环境执行查询即可:

?- sublist_from_element(3, [1,2,3,4,5], Sublist).

返回结果:
Sublist = [3, 4, 5]

如果原始列表中不存在指定的目标元素,该谓词会返回false,符合预期逻辑。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 07:09:03