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

Prolog语言提取列表前两个及最后两个元素的实现咨询

Prolog自定义谓词实现列表元素提取

功能说明

实现自定义谓词my_list/2,接收一个列表作为输入,提取该列表的前两个元素和最后两个元素,组合为新列表返回。

实现代码

my_list(InputList, Result) :-
    % 匹配提取前两个元素
    InputList = [First, Second | _],
    % 匹配提取最后两个元素
    append(_, [LastSecond, Last], InputList),
    % 按要求组合新列表
    Result = [First, Second, LastSecond, Last].

代码说明

  • 利用Prolog列表的结构匹配特性,[First, Second | _]可以直接拆分出列表的前两个元素,下划线为占位符,表示不需要用到中间的剩余内容
  • 内置谓词append/3在这里用来匹配列表末尾的两个元素,当传入的第二个参数为长度为2的列表时,会自动定位到输入列表的最后两位
  • 该实现要求输入列表长度至少为4,否则会查询失败,符合功能逻辑要求

运行测试

输入测试用例运行效果如下:

?- my_list([a,b, [c,[h], d], [] ,e, h], Q).
Q = [a,b,e,h].

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 15:06:05