나는 다음과 같은 조건을 가지고 말할 수 있습니다. 예를 들어 부모 사이의 거리는 2이고 형제 (형제) 간의 거리는 1입니다. 나는 다음을 시도했다 (그러나 그것은 작동하지 않았다) : 일반적으로가족 관계 프롤로그 거리
parent(X,Y) :-
father(X,Y);
mother(X,Y).
sibling(X,Y):-
parent(Z,X), !, parent(Z,Y),
not(X=Y).
not_in_list(_,[]).
not_in_list(X,[Y|L]):-
not(X=Y),
not_in_list(X,L).
edge(X,Y):-
(parent(X,Y);
parent(Y,X);
sibling(X,Y)).
list_length(0,[]).
list_length(N,[_|Ys]):-
list_length(N1,Ys),
N is N1+1.
travel_graph(X,X,_).
travel_graph(From,To,[From|Path]):-
edge(From,Next),
not_in_list(Next,Path),
travel_graph(Next,To,Path).
degree(X,Y,N):-
travel_graph(X,Y,L),
list_length(N,L).
! 아파! dif (X, Y)를 사용하십시오. – false