, , .
, :
prefix([], _).
prefix([X|Xs], [X,Ys]) :-
prefix(Xs, Ys).
suffix(Xs, Xs).
suffix(Xs, [_|Ys]) :-
suffix(Xs, Ys).
- :
sublist(Xs, Ys) :-
prefix(Ps, Ys),
suffix(Xs, Ps).
:
?- sublist(X, [1,2,3]).
X = [] ;
X = [1] ;
X = [] ;
X = [1, 2] ;
X = [2] ;
X = [] ;
X = [1, 2, 3] ;
X = [2, 3] ;
X = [3] ;
X = [] ;
false.
- :
sublist(Xs, Ys) :-
prefix(Xs, Ss),
suffix(Ss, Ys).
:
?- sublist(X, [1,2,3]).
X = [] ;
X = [] ;
X = [] ;
X = [] ;
X = [1] ;
X = [2] ;
X = [3] ;
X = [1, 2] ;
X = [2, 3] ;
X = [1, 2, 3] ;
:
sublist(Xs, Ys) :-
prefix(Xs, Ys).
sublist(Xs, [_|Ys]) :-
sublist(Xs, Ys).
:
?- sublist(X, [1,2,3]).
X = [] ;
X = [1] ;
X = [1, 2] ;
X = [1, 2, 3] ;
X = [] ;
X = [2] ;
X = [2, 3] ;
X = [] ;
X = [3] ;
X = [] ;
false.