サブリストアルゴリズムの以下の実装があります。問題:2つのリストが与えられた場合、一方が他方のサブリストであるかどうかを判別します。私は本当にPrologで別の明確な解決策が必要になるでしょう。
解決策1:
sublist([H1|T1], L, [H2|T2]):-
H1 = H2,
sublist(T1, L, T2).
sublist([], _, _)
sublist([H1|T1],L,[H2|T2]):-
sublist(L,L,T2).
解決策2:
sublist([H|T], [H|L]):- check(T,L),
sublist(S, [H|T]):- sublist(S,T).
check([H|T], [H|R]):-
check(T,R).
check([],_).
解決策3:
sublist(S,L):-
append(_,R,L),
append(S,_,R).
解決策3':
sublist(S,L):-
append3(_,S,_,L).