我對prolog有些新鮮,我試圖弄清楚如何在訂單無關緊要時實現綁定列表元素。我在代碼的最後兩行證明了這一點。這樣做似乎微不足道,但它沒有約束力。在序言中綁定無序列表
fh(Hand) :-
is_card(R, _, C1),
is_card(R, _, C2),
is_card(R, _, C3),
C1 \== C2,
C2 \== C3,
C1 \== C3,
is_card(RR, _, D1),
is_card(RR, _, D2),
R \= RR,
D1 \== D2,
is_set(Hand),
list_to_set([C1,C2,C3,D1,D2], Hand).
我將不勝感激一些提示。 (謂語名稱和功能隱蔽,防止抄襲)
您是否使用庫(列表)中的is_set和list_to_set?也許list_to_set需要一些順序,它說:「當Set與List具有相同的順序時,它是True。」我不知道如何運行你的代碼,所以我不知道。 – 2017-02-23 08:55:40
這是真的,顯然它只是一個元素不重複的意義上的集合。 – lamino