我对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