繁体   English   中英

序言列表谓词

[英]Prolog List predicate

对PROLOG来说还很陌生,我对此列表有疑问。

我需要一个谓词( sublist(X,Y ),如果列表X是列表Y的子列表,则为true。该子列表是原始列表,顺序相同,但是某些元素可能已被删除,例如,一些示例用户输入为:

?- 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
sublist( [], _ ).
sublist( [X|XS], [X|XSS] ) :- sublist( XS, XSS ).
sublist( [X|XS], [_|XSS] ) :- sublist( [X|XS], XSS ).

得到它了! 这对列表中的子序列和非子序列均适用

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM