PROLOG很新,我对此列表有疑问。
如果列表sublist(X,Y
是列表X
的子列表,我需要一个谓词(Y
)。子列表是原始列表,顺序相同,但某些元素可能已被删除。例如,一些示例用户输入是:
?- sublist([a,b],[a,e,b,d,s,e]).
Yes
?- sublist([a,b],[a,e,e,f]).
No
?- sublist([a,b],[b,a]).
No
?- sublist(X,[a,b,c]).
X = [] ;
X = [a] ;
X = [a, b] ;
X = [a, b, c] ;
X = [a, c] ;
X = [b] ;
X = [b, c] ;
X = [c] ;
No
答案 0 :(得分:0)
sublist( [], _ ).
sublist( [X|XS], [X|XSS] ) :- sublist( XS, XSS ).
sublist( [X|XS], [_|XSS] ) :- sublist( [X|XS], XSS ).
知道了!这适用于列表中的子序列和非子序列