Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
prolog中的邻对函数_Prolog - Fatal编程技术网

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).