0
我有一組規則;Prolog - 使用數學運算符的問題
家庭(母親,父親,孩子),兒童是一個列表(例如[ag,bg])和人/ 6。日期以人,日,月,年表示。
我想說的是,如果兩個孩子不是在同一天或連續的日子出生,必須相隔一年。 我一直在這個小時,似乎無法得到任何地方,下面是我的代碼,我個人不明白爲什麼它不會工作。 任何意見將不勝感激。
bad_children() :-
family(_,_,Q),
member(J,Q),
member(T,Q),
person(J,_,_,_,date(E,M,Y),place(_,_)),
person(T,_,_,_,date(F,M,K),place(_,_)),
(E \= F ; E \= (F+1) ; E \= (F-1)),
(Y-K) < 1
; (K-Y) < 1,
write(J),
write(' and '),
write(T),
write(' are born to close together.').
謝謝你的幫助,正確的輸出打印,但在打印答案3次,你有什麼想法,爲什麼會發生這種情況? –
很可能是因爲有多個匹配項。也許你可以將我發佈的有關身份的條件更改爲「J @
CapelliC
我忘了在J和T之間使用\ =,我意識到我應該在看到跟蹤結果後使用它。我很抱歉地問,但我已經看到了幾個月應該會出現,以及它們正在看到,如果他們不到一年的時間,所以只是評估一年沒有用。你會對如何解決這個問題有任何建議嗎? –