<分区>
我有以下子列表算法的实现。 问题:给定 2 个列表,确定一个是否是另一个的子列表。 我真的需要 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).