0
다음과 같이 내 데이터베이스에서 daughter_of 및 son_of를 정의하는 Prolog에서 규칙을 만들고 싶습니다. 그러나 새 규칙에서 Y, M 및 F와 함께 싱글 톤 오류가 발생합니다. 변수가 다른 곳에서 사용되지 않은 경우에만 이것이 발생했다고 생각했습니다. 또한 이것이 새로운 규칙을 작성하는 올바른 방법입니까?싱글 톤 변수 프롤로그
모든 안내가 크게 감사하겠습니다.
daughter_of(X,Y):-
female(X),
parents(X,M,F),
(Y = M ; Y = F).
son_of(X,Y):-
male(X),
parents(X,M,F),
(Y = M ; Y = F).
테스트 :
는parents(X,M,F)
어머니와 아버지를 얻을 후에는 어머니 또는 아버지 = Y. 여기
가 해결 될 경우 코드를 확인하는 것을 잊었다
male(albert).
male(edward).
female(alice).
female(victoria).
parents(edward, victoria, albert).
parents(alice, victoria, albert).
sister_of(X,Y):-
female(X),
parents(X,M,F),
parents(Y,M,F).
brother_of(X,Y):-
male(X),
parents(X,M,F),
parents(Y,M,F).
daughter_of(X,Y):-
female(X),
parents(X,M,F).
son_of(X,_Y):-
male(X),
parents(X,M,F).
술어의 변수 범위는 특정 절로 제한됩니다. 따라서 변수가 절에서 한 번만 언급되면 단일 경고가 표시됩니다. 당신의'son_of'와'daughter_of' 술어는 각각 하나의 절일 뿐이며'M'은 언급했지만 사용하지는 않습니다. 'daughter_of'는'Y'를 사용하지 않습니다. – lurker
정말 고맙습니다. – CompilerSaysNo