2011-09-20 1 views
20

Visual Prolog에서 "not equal"기호에 대한 문서를 찾을 수 없습니다. 이 문제의 올바른 해결 방법을 제공해주십시오.Visual Prolog에서 "같지 않음"기호가 표시됩니까?

class predicates 
     sister : (string Person, string Sister) nondeterm(o,o). 
    clauses 
     sister(Person, Sister) :- 
      Person [not-equal-sign] Sister, 
      parent(Person, Parent), 
      parent(Sister, Parent), 
      woman(Sister). 

미리 감사드립니다.

답변

37

난 당신이 (통합하지 않는 이유는 무엇입니까?) "같지 않음"을 의미하는 뭘하는지는 모르겠지만, 당신이 시도 할 수 :

두 번째 변종에 대한 문서가 Kaarel 지적
X \= Y 
not(X = Y) 
\+ (X = Y) 
+1

감사합니다. 두 번째 변형이 완벽하게 작동했습니다. – Egor

+4

이러한 옵션에는 차이점이 있습니까? – alaboudi

4

찾을 수 있습니다 in this Visual Prolog reference 페이지.

그러나 코드에 대한 문제는 조금 더 깊어집니다. 또한 별개의 의미 "<>"중위 연산자에 대한 구문 (또는 다른있다

sister(Person, Sister) :- 
     parent(Person, Parent), 
     parent(Sister, Parent), 
     not(Person = Sister), 
     woman(Sister). 

:이 같은 일을 두 용어 모두 사람과 자매가 바인딩 될 때까지 비 평등의 시험을 기다리는, 그래서 다시 정렬 할 필요가). 두 용어가 묶여지면 위의 구문과 같은 용어가 통일 될 수 없는지 확인하는 것과 같은 결과를 가져야합니다.