プロローグにこのナレッジベースがあります...
start :- navabi(C).
male(X,N) :-
write('Is this a male? '), flush_output,
read(yes).
navabi(N):- male(N) -> print('he is navabi') ; mirian(N).
mirian(N):- not( male(N)), print('she is ms.mirian').
female(X) :- not(male(X)).
問題は、このプログラムを開始して男性ではない人を入力すると、プログラムが mirian に移動することです。それから別のものを印刷すると、その人が男性かどうかを再度確認します (ただし、この「N」は男性ではないことに注意してください) が、「これは男性ですか?」と再度尋ねられます。プロローグは以前の知識を忘れているようです。誰でもこれで私を助けることができますか?
よろしく。