prolog中的邻对函数
我应该如何处理以下内容才能得到这样的结果:prolog中的邻对函数,prolog,Prolog,我应该如何处理以下内容才能得到这样的结果: adjpair(L): The list L consists of pairs of adjacent identical values. ?- adjpair([a, a, b, b, c, c]). true ?- adjpair([a, b, a, b]). false ?- adjpair([a, a, a, X]). X = a 到目前为止,我得到的是: pair([H|T]) :- select(H, T, T1), \
adjpair(L): The list L consists of pairs of adjacent identical values.
?- adjpair([a, a, b, b, c, c]).
true
?- adjpair([a, b, a, b]).
false
?- adjpair([a, a, a, X]).
X = a
到目前为止,我得到的是:
pair([H|T]) :-
select(H, T, T1),
\+ is_in(H, T1),
pair(T1).
pair([X,X]).
is_in(X, [H|_]) :-
X == H.
is_in(X, [_|T]) :-
is_in(X, T).
(对于空列表,将返回false,这可能是所需的行为,但问题并不完全清楚)。谢谢,这正是我所需要的。:)
adjpair([X, X]).
adjpair([X, X | Rest]) :-
adjpair(Rest).