0
我有一套規則;Prolog - 在同一元素上搜索兩個列表
family(Mother,Father,Children)
那裏的兒童是一個列表,並person/6
,我試圖讓兩個子句,一個確保孩子只能在一個家庭,以及其他,如果他們出生在相同或連續的日期然後他們需要在同一個地方出生。
bad_children(X) :-
family(I,_,[J|T]),
X = [J|T],
person(J,_,_,_,date(E,_,A),place(C,_)),
person(T,_,_,_,date(F,_,B),place(D,_)),
E==F; E==(F+1); E==(F-1),
C\==D,
write(X).
bad_child(X) :-
family(A,B,[H|T]),
family(C,D,[Z|Q]),
A\==C,
B\==D,
=(member(X,[H|T]), member(X,[Z|Q])),
write(X).
我在每個attemptds高於但既不是工作,我覺得我不是行權,任何人都可以給我什麼建議?
表達式'=(member(X,[H | T]),成員(X,[Z | Q])'的意圖是什麼?在Prolog中,這將試圖統一兩個術語'member (當然總是會成功),'H = Z'('H')和'成員(X,[Z | Q])'和「Z」可以統一)和「T = Q」(「T」和「Q」可以統一)。 – lurker