我有以下子列表算法的实现。
问题:给定两个列表,确定其中一个是否是另一个的子列表。
我真的需要另一种独特的Prolog解决方案。
第一种解决方案:
解决方案二:
解决方案三:
"方案三:"
第一种解决方案:
sublist([H1|T1], L, [H2|T2]):-
H1 = H2,
sublist(T1, L, T2).
sublist([], _, _)
sublist([H1|T1],L,[H2|T2]):-
sublist(L,L,T2).
解决方案二:
sublist([H|T], [H|L]):- check(T,L),
sublist(S, [H|T]):- sublist(S,T).
check([H|T], [H|R]):-
check(T,R).
check([],_).
解决方案三:
sublist(S,L):-
append(_,R,L),
append(S,_,R).
"方案三:"
sublist(S,L):-
append3(_,S,_,L).
sublist([a,b,c], [a, c])
、sublist([a, b, c], [c, a])
、sublist([a, b, c], [a, b])
? - salva