【问题标题】:Prolog List predicateProlog 列表谓词
【发布时间】:2017-05-02 02:29:14
【问题描述】:

对 PROLOG 很陌生,我对这个列表有疑问。

如果列表X 是列表Y 的子列表,我需要一个谓词(sublist(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

【问题讨论】:

    标签: list prolog predicate


    【解决方案1】:
    sublist( [], _ ).
    sublist( [X|XS], [X|XSS] ) :- sublist( XS, XSS ).
    sublist( [X|XS], [_|XSS] ) :- sublist( [X|XS], XSS ).
    

    知道了!这适用于列表中的子序列和非子序列

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-29
      • 1970-01-01
      • 2017-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多