【发布时间】:2017-11-07 02:18:19
【问题描述】:
我正在尝试创建一个included_list(X,Y) 术语来检查 X 是否是 Y 的非空子列表。
我已经用它来检查元素是否存在于 Y 列表中
check_x(X,[X|Tail]).
check_x(X,[Head|Tail]):- check_x(X,Tail).
还有附加项
append([], L, L).
append([X | L1], L2, [X | L3]) :- append(L1, L2, L3).
创建一个列表,以便程序完成
included_list([HeadX|TailX],[HeadX|TailX]).
但我在处理我试图通过“追加”创建的新空列表时遇到问题(我想创建一个空列表来添加已确认存在于两个列表中的元素。)
我找到了这个
sublist1( [], _ ).
sublist1( [X|XS], [X|XSS] ) :- sublist1( XS, XSS ).
sublist1( [X|XS], [_|XSS] ) :- sublist1( [X|XS], XSS ).
但它在 sublist([],[1,2,3,4) 上变为 true
【问题讨论】:
-
如果是考虑订单的子列表?或顺序无关紧要。 ?
-
您能否详细说明“但我在处理我试图通过“追加”创建的新空列表时遇到问题”?处理什么?您如何创建空列表以及将其用于什么?
-
@user2520215 这确实适用于空子列表。
-
@LeleDumbo 我想创建一个空列表来添加确认存在于两个列表中的元素。