temperature(thessaloniki,january,24,1).
temperature(thessaloniki,january,25,-2).
temperature(katerini,january,24,3).
temperature(loutsa,feb,25,1).
temp([],[],[]).
temp([H|T],L2,L3) :-
temp(T,L4,L5),
temperature(H,january,_,Te),
Te>0,
append([H],L4,L2),
L3=L5.
temp([H|T],L2,L3) :-
temp(T,L4,L5),
temperature(H,january,25,Te),
Te<0,
append([H],L5,L3),
L2=L4.
temp([H|T],L2,L3) :-
temp(T,L4,L5),
L2=L4,
L3=L5.
気温と日付のある町があります。そして、それらを正しいリストに追加する必要があります。ルールは正しいと思いますが、TkEclipse で実行すると次のようになります。
?- temp([thessaloniki, thessaloniki, katerini, loutsa], L2, L3).
L2 = [thessaloniki, thessaloniki, katerini]
L3 = []
そして、私がプログラムのトレーサーで見たように、最初のtemperature(thessaloniki,january,24,1).
2 回だけを取り、2 回目は取りません temperature(thessaloniki,january,25,-2).
。