2017-05-02 18 views
0

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 

答えて

0
sublist([], _). 
sublist([X|XS], [X|XSS]) :- sublist(XS, XSS). 
sublist([X|XS], [_|XSS]) :- sublist([X|XS], XSS). 

がそれを手に入れました!これは、リスト内のサブシーケンスと非サブシーケンスの両方で機能します