그래서 나는 지금까지 해왔 던 운동에 매달렸다.데이터베이스를 쿼리 할 때의 성공과 실패
이sd(appleseed0, appleseed1).
sd(appleseed0, apple1).
sd(appleseed1, apple1).
sd(appleseed2, apple1).
sd(appleseed0, apple2).
sd(appleseed1, apple2).
sd(appleseed2, apple2).
이것이 의미하는 것은 appleseed1이 appleseed0에서 온 것입니다, apple1 난 데 문제는 값이 전환되는 경우 내가 거짓 인쇄하는 데 필요하다 appleseed0 등에서 온 : 나는 다음과 같은 사실을 약. 의미, 내가 쿼리가 지금
seed(apple1, appleseed0).
처럼 반대 순서에있을 때 쿼리가 다음 "거짓"seed(appleseed0, apple1)
입니다 때 쿼리가 "true"를 초래 할, 내 조건은 다음과 같습니다
seed(A,B) :- sd(A,B) ; sd(B,A).
나는이 내 쿼리에 상관없이 순서 사실 반환하는 이유는,하지만 내 유일한 생각은 이해 :
seed(A,B) :- sd(A,B).
하지만 그 어떤 거짓과 그것을 무한 루프를 만들 것 때문에 나는 그런 식으로 쓸 수 없습니다 . seed(appleseed2, apple2)
과 같이 표시 될 때 검색어가 "true"가되고 seed(apple2, appleseed2)
과 같이 표시 될 때 "false"가 표시되도록하려면 어떻게해야합니까?
"apple1이 appleeseed0에서 온"경우 apple1이 apple1에서 나온 이유는 무엇입니까? sd/2가 지금 의미하는 바는 결코 분명하지 않습니다. – false