0
Prolog에서 상대 규칙을 정의하는 방법은 무엇입니까?Prolog에서 상대 규칙을 정의하는 방법은 무엇입니까?
이것은 내가 지금까지 무엇을 가지고 있습니다 : 사전에
spouce(X,Y) :-
wife(X,Y).
spouce(X,Y) :-
husband(X,Y).
relative-by-blood(X,Y) :-
ancestor(Z,X),
ancestor(Z,Y).
relative(X,Y) :-
relative-by-blood(X,Y).
relative(X,Y) :-
spouce(X,Y).
relative(X,Y) :-
relative-by-blood(X,Z), %<- not sure what to do here.
감사합니다!
자세히 설명해주십시오. –
정보를 조금 더 주시겠습니까? 지금까지 우리에게 주신 내용을 바탕으로 아래에서 내 대답을보십시오. 그러나 우리가 질문에서 얻는 것 이상의 이야기에 대한 느낌이 있습니다. –
ISO Prolog 구문에서 인용되지 않은 원자는 하이픈 - 빼기를 포함 할 수 없으므로 'relative-by-blood (X, Y)'는 원하는대로 구문 분석되지 않습니다. 대신, 당신은'- (- (상대, by), blood (X, Y))'를 얻을 것입니다. 필자는'relative_by_blood (X, Y)'를 원한다고 생각합니다.이 함수는 functor 인'relative_by_blood'와'X'와'Y' 인자로 두 개의 인자를 갖는 복합 항으로 해석합니다. – bcat