1
Prolog 변수 Var
이 Prolog 용어 Term
에서 발생하면 성공하는 조건자인 occurs(Var, Term)
을 쓰고 그렇지 않으면 실패합니다.Prolog에서 발생 확인
% occurs(Var, Term)
?- occurs(X, f(X)).
true.
?- occurs(X, f(Y)).
false.
?- occurs(X, f(a,g(b,h(X,c),d))).
true.
나는 그런 일에 대해 생각했다하지만 난 가능하면 다른 해결책을 원한다 :
이occurs(X,Y):- contains_term(X,Y).
실제로'contains_term/2'는 통일을 사용하기 때문에 올바르지 않습니다. 'contains_var/2'를 사용해야합니다. –
* 다른 해결책 * 당신은 문제를 쉽게 만드는 기존의 Prolog 술어'contains_var/2'를 피하기를 원하십니까? * 다른 솔루션 *에 대한 귀하의 요구 사항은 무엇입니까? "길게"하고 싶다면'(= ..)/2'를 사용하여 재귀 규칙을 작성하십시오. – lurker
비슷한 문제에 대한 [이 답변보기] (http://stackoverflow.com/q/27389177/772868) – false