는 지금까지 GNU에서 작동프롤로그 부울 식
not(X) :- \+ X.
and(X, Y):- X , Y.
or(X, Y):- X ; Y.
implies(X, Y):- \+ X ; Y.
p.
q.
:- initialization(main).
main :-
write('Program start'), nl.
당신은 입력 할 수 있으며 (P, Q)를, 프롤로그와 ((P를하지뿐만 아니라, 예 얻을 수있는이 프로그램을 입수했습니다 해결 q)). 이제 다음과 같이하고 싶습니다 :
사실을 (p로 초기화함으로써) true로 (그러나 q를 초기화하지 않고) true로 설정하고, (그리고 (p, q))를 true로 설정하면 원하는 말 프롤로그 : 하나의 솔루션이 존재 : 내가 페이지 설정 (또는 (P, Q)) 내가 프롤로그 원하는 true로 말을하면 "Q"
충족되어야합니다 두 솔루션은, "q"를 존재 할 수 있습니다 진실 또는 거짓. 가장 좋은 방법은 무엇입니까?
+1과 같은 깨끗한 표현! (당신은 펑터에 의해 엔티티를 구분할 수 있습니다). – mat